Скомпилируйте руководство по boost-python с VS-2015 CTP 5 и Python 3.5a для Windows 10 TP

Я пытаюсь получитьмодуль расширения boost-python работая над современным компилятором C ++ 14 в Windows 10. Я загрузил последние версии boost 1.57 и python 3.5a source, используя vc-14 (VS 2015 CTP 5).

Я скомпилировал Python из исходного кода, используя VS 2015 CTP 5 и эти инструкции:1.1.3.3. Windows.

Я выполнил команду

.\bootstrap.bat && .\b2 stage toolset=msvc --with-python

из папки проекта Boost c: \ boost

Это файл user-config.jam в моем домашнем каталоге:

using msvc : 14.0 : C:\\Program\ Files\ (x86)\\Microsoft\ Visual\ Studio\ 14.0\\VC\\bin\\cl.exe ;

using python                                                                                     
        : 3.5                                        # Version                                                            
        : C:\\python35a3\\PCBuild\\win32\\python.exe # Python Path                              
        : C:\\python35a3\\include                    # include path                                   
        : C:\\python35a3\\libs                       # lib path                                       
        : <define>BOOST_ALL_NO_LIB=1                                                                 
        ;  

Запуск bjam в каталоге с учебником приводит к несовместимости при создании файла pdb:

    c:\boost\libs\python\example\tutorial>bjam --debug-configuration
        notice: found boost-build.jam at C:/boost/libs/python/example/tutorial/boost-build.jam
        notice: loading Boost.Build from C:/boost/tools/build/src
    ....
        notice: Loading user-config configuration file 'user-config.jam' from 'C:/Users/marcel'.
        notice: [msvc-cfg] msvc-14.0 detected, command: 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\cl.exe'
        notice: [msvc-cfg] msvc-12.0 detected, command: 'C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\cl.exe'
        notice: will use 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\cl.exe' 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\cl.exe' for msvc, condition <toolset>msvc-14.0
        notice: [msvc-cfg] condition: '<toolset>msvc-14.0/<architecture>/<address-model>', setup: 'call "C:\Users\marcel\AppData\Local\Temp\b2_msvc_14.0_vcvarsall_x86.cmd" >nul
        '
        notice: [msvc-cfg] condition: '<toolset>msvc-14.0/<architecture>/<address-model>32', setup: 'call "C:\Users\marcel\AppData\Local\Temp\b2_msvc_14.0_vcvarsall_x86.cmd" >nul
        '
        notice: [msvc-cfg] condition: '<toolset>msvc-14.0/<architecture>x86/<address-model>', setup: 'call "C:\Users\marcel\AppData\Local\Temp\b2_msvc_14.0_vcvarsall_x86.cmd" >nul
        '
        notice: [msvc-cfg] condition: '<toolset>msvc-14.0/<architecture>x86/<address-model>32', setup: 'call "C:\Users\marcel\AppData\Local\Temp\b2_msvc_14.0_vcvarsall_x86.cmd" >nul
        '
        notice: [python-cfg] Configuring python...
        notice: [python-cfg]   user-specified version: "3.5"
        notice: [python-cfg]   user-specified cmd-or-prefix: "C:\python35a3\PCBuild\amd64\python_d.exe"
        notice: [python-cfg]   user-specified includes: "C:\python35a3\include"
        notice: [python-cfg]   user-specified libraries: "C:\python35a3\libs"
        notice: [python-cfg]   user-specified condition: "<define>BOOST_ALL_NO_LIB=1"
        notice: [python-cfg] Checking interpreter command "C:\python35a3\PCBuild\amd64\python_d.exe"...
        notice: [python-cfg] running command 'DIR /-C /A:S "C:\Python35a3\PCbuild\amd64\python_d.exe" 2>&1'
        notice: [python-cfg] running command 'C:\python35a3\PCBuild\amd64\python_d.exe -c "from sys import *; print('version=%d.%d\nplatform=%s\nprefix=%s\nexec_prefix=%s\nexecutable=%s' % (version_info[0],version_info[1],platform,prefix,exec_prefix,executable))" 2>&1'
        notice: [python-cfg] ...requested configuration matched!
        notice: [python-cfg] Details of this Python configuration:
        notice: [python-cfg]   interpreter command: "C:\python35a3\PCBuild\amd64\python_d.exe"
        notice: [python-cfg]   include path: "C:\python35a3\include"
        notice: [python-cfg]   library path: "C:\python35a3\libs"
        notice: [python-cfg]   DLL search path: "C:\python35a3"
        notice: Searching '../../../..' for project-config configuration file 'project-config.jam'.
        notice: Loading project-config configuration file 'project-config.jam' from '../../../..'.
    ....
        ...patience...
        ...patience...
        ...found 1893 targets...
        ...updating 6 targets...
        msvc.link.dll bin\msvc-14.0\debug\threading-multi\hello_ext.dll
           Creating library bin\msvc-14.0\debug\threading-multi\hello_ext.pdb and object bin\msvc-14.0\debug\threading-multi\hello_ext.exp
        LINK : fatal error LNK1207: incompatible PDB format in 'c:\boost\libs\python\example\tutorial\bin\msvc-14.0\debug\threading-multi\hello_ext.pdb'; delete and rebuild

    ....

    ...removing bin\hello.test\msvc-14.0\debug\threading-multi\hello.py
    ...skipped <pbin\hello.test\msvc-14.0\debug\threading-multi>hello for lack of <pbin\hello.test\msvc-14.0\debug\threading-multi>hello.py...
    ...failed updating 3 targets...
    ...skipped 3 targets...

Команда, выдающая вывод ошибки:

call "C:\Users\marcel\AppData\Local\Temp\b2_msvc_14.0_vcvarsall_x86.cmd" >nul

link /NOLOGO /INCREMENTAL:NO /DLL /NOENTRY /DEBUG /MACHINE:X86 /MANIFEST /subsystem:console /out:"bin\msvc-14.0\debug\threading-multi\hello_ext.dll" /IMPLIB:"bin\msvc-14.0\debug\threading-multi\hello_ext.pdb" /LIBPATH:"C:\python35a3\libs"   @"bin\msvc-14.0\debug\threading-multi\hello_ext.dll.rsp"

Creating library bin\msvc-14.0\debug\threading-multi\hello_ext.pdb and object bin\msvc-14.0\debug\threading-multi\hello_ext.exp
LINK : fatal error LNK1207: incompatible PDB format in 'c:\boost\libs\python\example\tutorial\bin\msvc-14.0\debug\threading-multi\hello_ext.pdb'; delete and rebuild

Команда link, похоже, соответствует способу компиляции python и boost (32-битная в той же версии компилятора).

Есть ли способ диагностировать, где возникла эта ошибка?

ОБНОВИТЬ: Компиляция с VC9 (VS2010) и предустановленной установкой Python 3.4. Я все еще получаю ту же ошибку:

link /NOLOGO /INCREMENTAL:NO /DLL /NOENTRY /DEBUG /MACHINE:X86 /MANIFEST /subsystem:console /out:"bin\msvc-10.0\debug\threading-multi\hello_ext.pyd" /IMPLIB:"bin\msvc-10.0\debug\threading-multi\hello_ext.pdb" /LIBPATH:"C:\python34\libs"   @"bin\msvc-10.0\debug\threading-multi\hello_ext.pyd.rsp"

Creating library bin\msvc-10.0\debug\threading-multi\hello_ext.pdb and object bin\msvc-10.0\debug\threading-multi\hello_ext.exp

LINK : fatal error LNK1207: incompatible PDB format in 'c:\boost\libs\python\example\tutorial\bin\msvc-10.0\debug\threading-multi\hello_ext.pdb'; delete and rebuild

Запуск интерпретатора python для подтверждения правильной версии компилятора:

c:\Python34\python.exe
Python 3.4.2 (v3.4.2:ab2c023a9432, Oct  6 2014, 22:15:05) [MSC v.1600 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

По-видимому, эта ошибка не имеет ничего общего с «острыми краями» среды, в которой выполняется сборка. Скорее, это прямой результат проблемы конфигурации Boost-build.

ОБНОВЛЕНИЕ 2: Попытка того же теста с предварительно собранным Python 2.7 и VS 2008 приводит к той же ошибке.

ОБНОВЛЕНИЕ 3 РЕШИТЬ Это правильно построено на boost v1.55, когда предприняты следующие шаги:

Загрузите и соберите python 3.5 a3 и соберите boost 1.55 с VC14, изменив файл user-config.jam в домашнем каталоге и запустив «bjam stage --use-python»Переместите получившиеся файлы в stage \ lib из libboost *, чтобы повысить * запустить bjam из каталога учебникаИзмените команду ошибочной ссылки, добавив следующий параметр LIBPATH: / LIBPATH: c: \ boost_1_55_0 \ stage \ lib

Проблема связывания с python 3.5 alpha3 с VC14 изолирована, чтобы ускорить сборку v1.57.

Ответы на вопрос(0)

Ваш ответ на вопрос