[Boost-users] Help trying to compile boost 1_65_1 on Windows (Visual Studio 2017) with LZMA filter support

349 views
Skip to first unread message

Diego Luna via Boost-users

unread,
Sep 12, 2017, 3:06:45 PM9/12/17
to Boost users list, Diego Luna

Hello everyone, this is my first post. Like the subject says, I need some help compiling boost 1_65_1 on Windows (Visual Studio 2017) on 64 bits with LZMA filter support. I've been compiling boost on Windows and Linux for some time without any problems, but the LZMA support in Windows, caused me some problems. I've downloaded and compiled the LZMA lib (XZ utils from https://tukaani.org/xz/), producing static (lib) and shared(dll+lib) libraries, in release and debug variants, then I  have  written the following user config jam (I think the problem is in the syntax of the file):

##########################################
## Using Python 3.6 (64 bits).
##
using python : 3.6
  : C:\\APPS\\PROGRAMMING\\Python36-64\\python.exe
  : C:\\APPS\\PROGRAMMING\\Python36-64\\include
  : C:\\APPS\\PROGRAMMING\\Python36-64\\libs
  : <address-model>64 ;

## Using lzma library 5.2.3.
##
##
using lzma : 5.2.3 : <name>liblzma <include>C:\\APPS\\PROGRAMMING\\LIBRARIES\\lzma\\include   <search>C:\\APPS\\PROGRAMMING\\LIBRARIES\\lzma\\lib64
  : <variant>release <link>shared ;

using lzma : 5.2.3 : <name>liblzmad <include>C:\\APPS\\PROGRAMMING\\LIBRARIES\\lzma\\include <search>C:\\APPS\\PROGRAMMING\\LIBRARIES\\lzma\\lib64
  : <variant>debug <link>shared ;

using lzma : 5.2.3 : <name>liblzma_static <include>C:\\APPS\\PROGRAMMING\\LIBRARIES\\lzma\\include <search>C:\\APPS\\PROGRAMMING\\LIBRARIES\\lzma\\lib64
  : <variant>release <link>static ;

using lzma : 5.2.3 : <name>liblzma_staticd <include>C:\\APPS\\PROGRAMMING\\LIBRARIES\\lzma\\include <search>C:\\APPS\\PROGRAMMING\\LIBRARIES\\lzma\\lib64
  : <variant>debug <link>static ;

##########################################

The command line for the actual compiling (after bootstrap), (omitting the path to the other libraries for shortness, those are linked\compiled without any problem)  is:

.\b2 -j6 --user-config=.\user-config-64.jam --build-type=complete -q -sZLIB_SOURCE="%ZLIB_ROOT%" -sBZIP2_SOURCE="%BZIP2_ROOT%" -sICU_PATH="%ICU_LIB%" toolset=msvc-14.1 link="static,shared" threading=multi ^
 variant="debug,release" architecture=x86 address-model=64 runtime-link=shared stage --debug-symbols=on --debug-store=database --debug-configuration -d2

The output is:

notice: found boost-build.jam at E:/DATA/TMP/boost/boost_1_65_1/boost-build.jam
notice: loading Boost.Build from E:/DATA/TMP/boost/boost_1_65_1/tools/build/src
notice: Searching 'C:\WINDOWS' 'C:\Users\bakaneko' 'C:\APPS\TOOLS\UNIX-HOME' 'C:\Users\bakaneko' 'E:\DATA\TMP\boost\boost_1_65_1\tools/build/src' 'E:/DATA/TMP/boost/boost_1_65_1/tools/build/src/kernel' 'E:/DATA/TMP/boost/boost_1_65_1/tools/build/src/util' 'E:/DATA/TMP/boost/boost_1_65_1/tools/build/src/build' 'E:/DATA/TMP/boost/boost_1_65_1/tools/build/src/tools' 'E:/DATA/TMP/boost/boost_1_65_1/tools/build/src/contrib' 'E:/DATA/TMP/boost/boost_1_65_1/tools/build/src/.' for site-config configuration file 'site-config.jam'.
notice: Configuration file 'site-config.jam' not found in 'C:\WINDOWS' 'C:\Users\bakaneko' 'C:\APPS\TOOLS\UNIX-HOME' 'C:\Users\bakaneko' 'E:\DATA\TMP\boost\boost_1_65_1\tools/build/src' 'E:/DATA/TMP/boost/boost_1_65_1/tools/build/src/kernel' 'E:/DATA/TMP/boost/boost_1_65_1/tools/build/src/util' 'E:/DATA/TMP/boost/boost_1_65_1/tools/build/src/build' 'E:/DATA/TMP/boost/boost_1_65_1/tools/build/src/tools' 'E:/DATA/TMP/boost/boost_1_65_1/tools/build/src/contrib' 'E:/DATA/TMP/boost/boost_1_65_1/tools/build/src/.'.
notice: Loading explicitly specified user configuration file:
    E:\DATA\TMP\boost\boost_1_65_1\user-config-64.jam
notice: Searching 'E:\DATA\TMP\boost\boost_1_65_1' for user-config configuration file 'user-config-64.jam'.
notice: Loading user-config configuration file 'user-config-64.jam' from 'E:/DATA/TMP/boost/boost_1_65_1'.
notice: [python-cfg] Configuring python...
notice: [python-cfg]   user-specified version: "3.6"
notice: [python-cfg]   user-specified cmd-or-prefix: "C:\APPS\PROGRAMMING\Python36-64\python.exe"
notice: [python-cfg]   user-specified includes: "C:\APPS\PROGRAMMING\Python36-64\include"
notice: [python-cfg]   user-specified libraries: "C:\APPS\PROGRAMMING\Python36-64\libs"
notice: [python-cfg]   user-specified condition: "<address-model>64"
notice: [python-cfg] Checking interpreter command "C:\APPS\PROGRAMMING\Python36-64\python.exe"...
notice: [python-cfg] running command 'DIR /-C /A:S "C:\APPS\PROGRAMMING\Python36-64\python.exe" 2>&1'
notice: [python-cfg] running command 'C:\APPS\PROGRAMMING\Python36-64\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:\APPS\PROGRAMMING\Python36-64\python.exe"
notice: [python-cfg]   include path: "C:\APPS\PROGRAMMING\Python36-64\include"
notice: [python-cfg]   library path: "C:\APPS\PROGRAMMING\Python36-64\libs"
notice: [python-cfg]   DLL search path: "C:\APPS\PROGRAMMING\Python36-64"
notice: [python-cfg] Checking for NumPy...
notice: [python-cfg] running command 'C:\APPS\PROGRAMMING\Python36-64\python.exe -c "import sys; sys.stderr = sys.stdout; import numpy; print(numpy.get_include())"'
notice: [python-cfg] NumPy enabled
notice: [lzma] Using pre-installed library
notice: [lzma] Condition <link>shared <variant>release
notice: [lzma] Using pre-installed library
notice: [lzma] Condition <link>shared <variant>debug
notice: [lzma] Using pre-installed library
notice: [lzma] Condition <link>static <variant>release
notice: [lzma] Using pre-installed library
notice: [lzma] Condition <link>static <variant>debug
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-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\Enterprise\VC\Tools\MSVC\14.11.25503\bin\HostX64\arm\cl.exe'
notice: will use 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\bin\HostX64\arm\cl.exe' for msvc, condition <toolset>msvc-14.1
'notice: [generate-setup-cmd] 14.1 is 14.1'
'notice: [generate-setup-cmd] 14.1 is 14.1'
'notice: [generate-setup-cmd] 14.1 is 14.1'
'notice: [generate-setup-cmd] 14.1 is 14.1'
notice: [msvc-cfg] condition: '<toolset>msvc-14.1/<architecture>/<address-model>', setup: 'call "C:\Users\bakaneko\AppData\Local\Temp\b2_msvc_14.1_vcvars32_.cmd" >nul
'
notice: [msvc-cfg] condition: '<toolset>msvc-14.1/<architecture>/<address-model>32', setup: 'call "C:\Users\bakaneko\AppData\Local\Temp\b2_msvc_14.1_vcvars32_.cmd" >nul
'
notice: [msvc-cfg] condition: '<toolset>msvc-14.1/<architecture>x86/<address-model>', setup: 'call "C:\Users\bakaneko\AppData\Local\Temp\b2_msvc_14.1_vcvars32_.cmd" >nul
'
notice: [msvc-cfg] condition: '<toolset>msvc-14.1/<architecture>x86/<address-model>32', setup: 'call "C:\Users\bakaneko\AppData\Local\Temp\b2_msvc_14.1_vcvars32_.cmd" >nul
'
notice: [msvc-cfg] condition: '<toolset>msvc-14.1/<architecture>/<address-model>64', setup: 'call "C:\Users\bakaneko\AppData\Local\Temp\b2_msvc_14.1_vcvarsx86_amd64_.cmd" >nul
'
notice: [msvc-cfg] condition: '<toolset>msvc-14.1/<architecture>x86/<address-model>64', setup: 'call "C:\Users\bakaneko\AppData\Local\Temp\b2_msvc_14.1_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/Enterprise/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/Enterprise/VC/Auxiliary/Build/vcvarsall.bat"  >nul
'
notice: [msvc-cfg] condition: '<toolset>msvc-14.1/<architecture>arm/<address-model>', setup: 'call "C:\Users\bakaneko\AppData\Local\Temp\b2_msvc_14.1_vcvarsx86_arm_.cmd" >nul
'
notice: [msvc-cfg] condition: '<toolset>msvc-14.1/<architecture>arm/<address-model>32', setup: 'call "C:\Users\bakaneko\AppData\Local\Temp\b2_msvc_14.1_vcvarsx86_arm_.cmd" >nul
'
notice: [zlib] Building zlib from source as boost_zlib
notice: [zlib] Condition
notice: [zlib] found zlib source in C:\APPS\PROGRAMMING\LIBRARIES\zlib\src_inc
notice: [bzip2] Building bzip from source as boost_bzip2
notice: [bzip2] Condition
notice: [bzip2] found bzip source in C:\APPS\PROGRAMMING\LIBRARIES\bzip2\src
notice: [lzma] Using pre-installed library
notice: [lzma] Condition
Performing configuration checks

    - 32-bit                   : yes
    - arm                      : no
    - mips1                    : no
    - power                    : no
    - sparc                    : no
    - x86                      : yes
    - symlinks supported       : no
    - junctions supported      : yes
    - hardlinks supported      : yes
    - C++11 mutex              : yes
    - Boost.Config Feature Check: cxx11_auto_declarations : yes
    - Boost.Config Feature Check: cxx11_constexpr : yes
    - Boost.Config Feature Check: cxx11_defaulted_functions : yes
    - Boost.Config Feature Check: cxx11_final : yes
    - Boost.Config Feature Check: cxx11_hdr_mutex : yes
    - Boost.Config Feature Check: cxx11_hdr_tuple : yes
    - Boost.Config Feature Check: cxx11_lambdas : yes
    - Boost.Config Feature Check: cxx11_noexcept : yes
    - Boost.Config Feature Check: cxx11_nullptr : yes
    - Boost.Config Feature Check: cxx11_rvalue_references : yes
    - Boost.Config Feature Check: cxx11_template_aliases : yes
    - Boost.Config Feature Check: cxx11_thread_local : yes
    - Boost.Config Feature Check: cxx11_variadic_templates : yes
    - icu (64-bit)             : yes
warning: Graph library does not contain MPI-based parallel components.
note: to enable them, add "using mpi ;" to your user-config.jam
    - lzma                     : yes
    - iconv (libc)             : no
    - iconv (separate)         : no
    - native-atomic-int32-supported : yes
    - message-compiler         : yes
    - native-syslog-supported  : no
    - pthread-supports-robust-mutexes : no
    - compiler-supports-visibility : no
    - compiler-supports-ssse3  : yes
    - compiler-supports-avx2   : yes
    - gcc visibility           : no
    - long double support      : yes
warning: skipping optional Message Passing Interface (MPI) library.
note: to enable MPI support, add "using mpi ;" to user-config.jam.
note: to suppress this message, pass "--without-mpi" to bjam.
note: otherwise, you can safely ignore this message.
    - libbacktrace builds      : no
    - addr2line builds         : no
    - WinDbg builds            : yes
    - WinDbgCached builds      : yes
    - lzma                     : yes (cached)
    - lzma                     : yes
    - lzma                     : yes (cached)

Component configuration:

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

...patience...
...patience...
...patience...
...patience...
...patience...
...found 29592 targets...
...updating 2728 targets...

...

When the compiling is done the related libraries (iostream) are:

boost_iostreams-vc141-mt-1_65_1.dll
boost_iostreams-vc141-mt-1_65_1.lib
boost_iostreams-vc141-mt-gd-1_65_1.dll
boost_iostreams-vc141-mt-gd-1_65_1.lib
libboost_iostreams-vc141-mt-1_65_1.lib
libboost_iostreams-vc141-mt-gd-1_65_1.lib

The problem is that both, "boost_iostreams-vc141-mt-gd-1_65_1.dll" and "boost_iostreams-vc141-mt-1_65_1.dll" were linked to the debug version of the LZMA dll (libzmad.dll), and examining the log,
both "libboost_iostreams-vc141-mt-gd-1_65_1.lib" and "libboost_iostreams-vc141-mt-1_65_1.lib" were statically linked to the debug version of the static LZMA library (liblzma_staticd.lib).
I tried with some more combinations in the user jam file, but without success, and in most cases failing to detect LZMA.

If you require any further information to help find the problem, please, let me know, I'd appreciate any help with this problem. Sorry for my English, best regards, Diego.


P.S: The config log can be found here: config.log.




signature.asc
Reply all
Reply to author
Forward
0 new messages