Windows Boost 1.64 VS2017 Python libraries are missing

I am trying to build Boost 1.64 on Windows with VS2017. Everything builds without errors, but some s .lib

and .dll

s are missing in my output libs directory . Specifically, the main missing library I need is Boost.Python.

My last attempt at creation looks like this, although I've tried many different combinations of options:

.\b2 --prefix=c:\boost --build-dir=boost_build --layout=versioned toolset=msvc-14.1 address-model=64 -j4 --with-python -a --reconfigure --stage-dir=stage --build-type=complete --debug-configuration -d2 stage >build.log 2>&1

      

And my build output looks like this:

notice: found boost-build.jam at C:/boost_1_64_0/boost_1_64_0/boost-build.jam
notice: loading Boost.Build from C:/boost_1_64_0/boost_1_64_0/tools/build/src
notice: Searching 'C:\Windows' 'C:\Users\tsanders' 'C:\Users\tsanders' 'C:\boost_1_64_0\boost_1_64_0\tools/build/src' 'C:/boost_1_64_0/boost_1_64_0/tools/build/src/kernel' 'C:/boost_1_64_0/boost_1_64_0/tools/build/src/util' 'C:/boost_1_64_0/boost_1_64_0/tools/build/src/build' 'C:/boost_1_64_0/boost_1_64_0/tools/build/src/tools' 'C:/boost_1_64_0/boost_1_64_0/tools/build/src/contrib' 'C:/boost_1_64_0/boost_1_64_0/tools/build/src/.' for site-config configuration file 'site-config.jam'.
notice: Configuration file 'site-config.jam' not found in 'C:\Windows' 'C:\Users\tsanders' 'C:\Users\tsanders' 'C:\boost_1_64_0\boost_1_64_0\tools/build/src' 'C:/boost_1_64_0/boost_1_64_0/tools/build/src/kernel' 'C:/boost_1_64_0/boost_1_64_0/tools/build/src/util' 'C:/boost_1_64_0/boost_1_64_0/tools/build/src/build' 'C:/boost_1_64_0/boost_1_64_0/tools/build/src/tools' 'C:/boost_1_64_0/boost_1_64_0/tools/build/src/contrib' 'C:/boost_1_64_0/boost_1_64_0/tools/build/src/.'.
notice: Searching 'C:\Users\tsanders' 'C:\Users\tsanders' 'C:\boost_1_64_0\boost_1_64_0\tools/build/src' 'C:/boost_1_64_0/boost_1_64_0/tools/build/src/kernel' 'C:/boost_1_64_0/boost_1_64_0/tools/build/src/util' 'C:/boost_1_64_0/boost_1_64_0/tools/build/src/build' 'C:/boost_1_64_0/boost_1_64_0/tools/build/src/tools' 'C:/boost_1_64_0/boost_1_64_0/tools/build/src/contrib' 'C:/boost_1_64_0/boost_1_64_0/tools/build/src/.' for user-config configuration file 'user-config.jam'.
notice: Loading user-config configuration file 'user-config.jam' from 'C:/Users/tsanders'.
notice: [python-cfg] Configuring python...
notice: [python-cfg]   user-specified cmd-or-prefix: "C:\Miniconda2\python.exe"
notice: [python-cfg]   user-specified includes: "C:\Miniconda2\include"
notice: [python-cfg]   user-specified libraries: "C:\Miniconda2\libs"
notice: [python-cfg] Checking interpreter command "C:\Miniconda2\python.exe"...
notice: [python-cfg] running command 'DIR /-C /A:S "C:\Miniconda2\python.exe" 2>&1'
notice: [python-cfg] running command 'C:\Miniconda2\python.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:\Miniconda2\python.exe"
notice: [python-cfg]   include path: "C:\Miniconda2\include"
notice: [python-cfg]   library path: "C:\Miniconda2\libs"
notice: [python-cfg]   DLL search path: "C:\Miniconda2"
notice: [python-cfg] Checking for NumPy...
notice: [python-cfg] running command 'C:\Miniconda2\python.exe -c "import sys; sys.stderr = sys.stdout; import numpy; print(numpy.get_include())"'
notice: [python-cfg] NumPy enabled
notice: Searching '.' for project-config configuration file 'project-config.jam'.
notice: Loading project-config configuration file 'project-config.jam' from '.'.
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: [msvc-cfg] msvc-11.0 detected, command: 'C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cl.exe'
notice: [msvc-cfg] msvc-14.1 detected, command: 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.25017\bin\HostX64\x64\cl.exe'
notice: will use 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.25017\bin\HostX64\x64\cl.exe' for msvc, condition <toolset>msvc-14.1
'notice: [generate-setup-cmd] 14.10.25017 is 14.1'
'notice: [generate-setup-cmd] 14.10.25017 is 14.1'
'notice: [generate-setup-cmd] 14.10.25017 is 14.1'
'notice: [generate-setup-cmd] 14.10.25017 is 14.1'
notice: [msvc-cfg] condition: '<toolset>msvc-14.1/<architecture>/<address-model>', setup: 'call "C:\Users\tsanders\AppData\Local\Temp\b2_msvc_14.10.25017_vcvars32_.cmd" >nul
'
notice: [msvc-cfg] condition: '<toolset>msvc-14.1/<architecture>/<address-model>32', setup: 'call "C:\Users\tsanders\AppData\Local\Temp\b2_msvc_14.10.25017_vcvars32_.cmd" >nul
'
notice: [msvc-cfg] condition: '<toolset>msvc-14.1/<architecture>x86/<address-model>', setup: 'call "C:\Users\tsanders\AppData\Local\Temp\b2_msvc_14.10.25017_vcvars32_.cmd" >nul
'
notice: [msvc-cfg] condition: '<toolset>msvc-14.1/<architecture>x86/<address-model>32', setup: 'call "C:\Users\tsanders\AppData\Local\Temp\b2_msvc_14.10.25017_vcvars32_.cmd" >nul
'
notice: [msvc-cfg] condition: '<toolset>msvc-14.1/<architecture>/<address-model>64', setup: 'call "C:\Users\tsanders\AppData\Local\Temp\b2_msvc_14.10.25017_vcvarsx86_amd64_.cmd" >nul
'
notice: [msvc-cfg] condition: '<toolset>msvc-14.1/<architecture>x86/<address-model>64', setup: 'call "C:\Users\tsanders\AppData\Local\Temp\b2_msvc_14.10.25017_vcvarsx86_amd64_.cmd" >nul
'
notice: [msvc-cfg] condition: '<toolset>msvc-14.1/<architecture>ia64/<address-model>', setup: 'call "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Auxiliary/Build/vcvarsall.bat"  >nul
'
notice: [msvc-cfg] condition: '<toolset>msvc-14.1/<architecture>ia64/<address-model>64', setup: 'call "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Auxiliary/Build/vcvarsall.bat"  >nul
'
notice: [msvc-cfg] condition: '<toolset>msvc-14.1/<architecture>arm/<address-model>', setup: 'call "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Auxiliary/Build/vcvarsall.bat"  >nul
'
notice: [msvc-cfg] condition: '<toolset>msvc-14.1/<architecture>arm/<address-model>32', setup: 'call "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Auxiliary/Build/vcvarsall.bat"  >nul
'
notice: [zlib] Using pre-installed library
notice: [zlib] Condition
notice: [bzip2] Using pre-installed library
notice: [bzip2] Condition
Performing configuration checks

    - 32-bit                   : yes
    - arm                      : no
    - mips1                    : no
    - power                    : no
    - sparc                    : no
    - x86                      : yes
    - symlinks supported       : yes

Component configuration:

    - atomic                   : not building
    - chrono                   : not building
    - container                : not building
    - context                  : not building
    - coroutine                : not building
    - coroutine2               : not building
    - date_time                : not building
    - exception                : not building
    - fiber                    : not building
    - filesystem               : not building
    - graph                    : not building
    - graph_parallel           : not building
    - iostreams                : not building
    - locale                   : not building
    - log                      : not building
    - math                     : not building
    - metaparse                : not building
    - mpi                      : not building
    - program_options          : not building
    - python                   : building
    - random                   : not building
    - regex                    : not building
    - serialization            : not building
    - signals                  : not building
    - system                   : not building
    - test                     : not building
    - thread                   : not building
    - timer                    : not building
    - type_erasure             : not building
    - wave                     : not building

...found 1 target...

      

Notes:

  • I am using Miniconda instead of a traditional Python installation. Could be a problem, although the output from it --debug-configuration

    definitely indicates that it is finding everything correctly.
  • After adding some debug messages, I found that what I found 1 target

    is all

    target; I don't see any build results for boost.python sources, as I see if I build additional libraries.
  • Adding additional debug output isn't particularly useful; even with maximum debugging results, I could not find any Python related errors or warnings.
  • I also tried starting with boost.python quickstart , which compiles successfully but is not linked because it cannot find it boost_python.dll

    . (Although technically I think it should be looking for something like boost_python-vc141-mt-1_64.dll

    ...)

I tried several options for combinations bootstrap.bat

(eg, --with-libraries=python

, --with-python=C:\Miniconda2\python.exe

, --with-python-root=C:\Miniconda2

), and b2.exe

, but it seems that nothing has changed.

If I download the pre-compiled libraries boost_python

and put them along with all the other libraries I have created, my project builds and works as expected. Building the python libraries themselves is the only thing I still stick with.

I know that I am not alone; I posted this question on a Reddit thread and another user mentioned that they have the same problem; unfortunately his solution was to "end up hitting the right set of options for both bootstrap and b2".

Does anyone else have a problem like this?

+3


source to share


2 answers


I ended up tracing this back to mine user-config.jam

where my Python version was unspecified.

I originally had this configuration:

using python 
    : # version
    : C:\\Miniconda2\\python.exe
    : C:\\Miniconda2\\include
    : C:\\Miniconda2\\libs
    ;

      



the documentation seems to indicate that leaving "version" empty is ok; I think empty version should mean either "default version" or "all versions". However, this caused an amplification of the silent skipping of building python libraries.

Everything builds as expected when explicitly specifying the Python version:

using python 
    : 2.7                        # version
    : C:\\Miniconda2\\python.exe # interpreter
    : C:\\Miniconda2\\include    # include dir
    : C:\\Miniconda2\\libs       # library dir
    ;

      

+2


source


Building python boost 1.64 libs with Visual Studio seems to be broken .

Replace <boost_root>/‪libs/python/build/Jamfile

with this .



I create it this way :

wget.exe https://dl.dropboxusercontent.com/u/59547297/Libraries/boost_1_64_0.zip -OC:\thirdparty\vs2015\x64\boost_1_64_0.zip    
7za.exe x C:\thirdparty\vs2015\x64\boost_1_64_0.zip -oC:\thirdparty\vs2015\x64
xcopy /y boost_1_64_0\Jamfile C:\thirdparty\vs2015\x64\boost_1_64_0\libs\python\build\Jamfile
del C:\thirdparty\vs2015\x64\boost_1_64_0.zip
call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
C:
cd C:\thirdparty\vs2015\x64\boost_1_64_0
call bootstrap.bat
b2 --toolset=msvc-14.0 address-model=64 --build-type=complete stage -j 8

      

0


source







All Articles