Boost logo

Boost Users :

Subject: Help trying to compile boost 1_65_1 on Windows (Visual Studio 2017) with LZMA filter support
From: Diego Luna (diegorluna_at_[hidden])
Date: 2017-09-12 18:55:20


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
<https://www.dropbox.com/s/kkut7kuka2jgi57/config.log?dl=0>.








Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net