Компиляция учебного проекта в Boost. Python on windows - Невозможно открыть включаемый файл - PullRequest
0 голосов
/ 17 марта 2020

Я пытаюсь заставить работать библиотеку. python - особенно учебный проект. Я сидел буквально несколько часов, но каждый раз, когда я зацикливаюсь на чем-то новом, надеюсь, что кто-нибудь сможет мне помочь. Это самое дальнее, что я получил:

Моя среда Windows 10 64-битная, версия Boost 1_72_0 загружена с официального сайта. Я извлек ее в C:/boost/boost_1_72_0, затем добавил эту папку в переменную окружения PATH и в командной строке cd 'd в ней и запустил сценарий bootstrap.sh. Пока все хорошо.

Затем я создал user-config.jam файл в %HOMEDRIVE%%HOMEPATH% (i.e. C:/Users/Papooch) со следующим содержимым:

#  MSVC configuration
using msvc : 14.11 ;

#  Python configuration
using python
    : 3.7
    : "C:\\Users\\Papooch\\Anaconda3\\python.exe" 
    : "C:\\Users\\Papooch\\Anaconda3\\include"
    : "C:\\Users\\Papooch\\Anaconda3\\libs"
    : <define>BOOST_ALL_NO_LIB=1
    ;

Затем я открыл командную строку разработчика для VS 2017 и cd попал в тот же каталог и запустил

b2 --with-python

Пока все хорошо.

Теперь о части, с которой я борюсь: Когда я пытаюсь построить пример в C:\Boost\boost_1_72_0\libs\python\example\tutorial используя g2, я получаю следующий вывод:

C:\Boost\boost_1_72_0\libs\python\example\tutorial>b2
...found 21 targets...
...updating 9 targets...
msvc.write-setup-script ..\bin\standalone\msvc\msvc-14.11\msvc-setup.bat
compile-c-c++ hello.obj
hello.cpp
hello.cpp(7): fatal error C1083: Cannot open include file: 'boost/python/module.hpp': No such file or directory

    call "..\bin\standalone\msvc\msvc-14.11\msvc-setup.bat"  >nul
 cl /Zm800 -nologo @"hello.obj.rsp"

...failed compile-c-c++ hello.obj...
...skipped <p.>hello_ext.dll for lack of <p.>hello.obj...
...skipped <p.>hello for lack of <p.>hello_ext.dll...
...skipped <p.>hello_ext.pdb for lack of <p.>hello.obj...
...failed updating 1 target...
...skipped 4 targets...
...updated 5 targets...

Очевидно, что путь включения не содержит папку boost, поэтому я запускаю

b2 include=C:\Boost\boost_1_72_0

, но затем получаю это:

C:\Boost\boost_1_72_0\libs\python\example\tutorial>b2 include=%BOOST_ROOT%
...patience...
...found 1054 targets...
...updating 5 targets...
compile-c-c++ hello.obj
hello.cpp
msvc.link.dll hello_ext.dll
LINK : fatal error LNK1181: cannot open input file 'boost_python.lib'

        call "..\bin\standalone\msvc\msvc-14.11\msvc-setup.bat"  >nul
 link /NOLOGO /INCREMENTAL:NO /DLL /NOENTRY /DEBUG /MACHINE:X86 /MANIFEST /subsystem:console /out:"hello_ext.dll"  /LIBPATH:"C:\Users\Papooch\Anaconda3\libs"   @"hello_ext.dll.rsp"
        if %ERRORLEVEL% NEQ 0 EXIT %ERRORLEVEL%

...failed msvc.link.dll hello_ext.dll hello_ext.pdb hello_ext.pdb...
...skipped <p.>hello for lack of <p.>hello_ext.dll...
...failed updating 2 targets...
...skipped 2 targets...
...updated 1 target...

И я застрял. Файл boost_python.lib не существует нигде на моем компьютере, и я не знаю, как поступить.

Обратите внимание, что я довольно неопытен в создании чего-то большего, чем простые автономные программы на С ++, поэтому, пожалуйста, будьте осторожны.

...