I am trying to create mingw files for enhancement on a Linux machine. The mingw compiler is present on my system as / usr / bin / i 586-mingw32msvc-g ++, and I was able to create a simple HelloWorld.exe application.
Here is the exact list of my actions:
$ tar xvf boost_1_46_1.tar.gz $ cd boost_1_46_1/ $ echo "using gcc : 4.4.4: i586-mingw32msvc-g++ ;" > user-config.jam $ ./bootstrap.sh $ ./bjam toolset=gcc target-os=windows
The result is the following:
Building the Boost C++ Libraries. ...found 83 targets... ...updating 9 targets... common.mkdir bin.v2 common.mkdir bin.v2/libs common.mkdir bin.v2/libs/regex common.mkdir bin.v2/libs/regex/build common.mkdir bin.v2/libs/regex/build/gcc-mingw-4.4.4 common.mkdir bin.v2/libs/regex/build/gcc-mingw-4.4.4/debug common.mkdir bin.v2/libs/regex/build/gcc-mingw-4.4.4/debug/target-os-windows gcc.compile.c++ bin.v2/libs/regex/build/gcc-mingw-4.4.4/debug/target-os-windows/has_icu_test.o In file included from /usr/include/unicode/pwin32.h:123, from /usr/include/unicode/umachine.h:47, from /usr/include/unicode/uversion.h:47, from libs/regex/build/has_icu_test.cpp:12: /usr/include/inttypes.h:290: warning: ISO C++ 1998 does not support 'long long' /usr/include/inttypes.h:291: warning: ISO C++ 1998 does not support 'long long' libs/regex/build/has_icu_test.cpp: In function 'int main()': libs/regex/build/has_icu_test.cpp:24: warning: unused variable 'c' gcc.link bin.v2/libs/regex/build/gcc-mingw-4.4.4/debug/target-os-windows/has_icu.exe /usr/lib/gcc/i586-mingw32msvc/4.4.4/../../../../i586-mingw32msvc/bin/ld: cannot find -licuuc collect2: ld returned 1 exit status "i586-mingw32msvc-g++" -L"/usr/bin" -L"/usr/lib" -Wl,-R -Wl,"/usr/bin" -Wl,-R -Wl,"/usr/lib" -Wl,-rpath-link -Wl,"/usr/bin" -Wl,-rpath-link -Wl,"/usr/lib" -o "bin.v2/libs/regex/build/gcc-mingw-4.4.4/debug/target-os-windows/has_icu.exe" -Wl,--start-group "bin.v2/libs/regex/build/gcc-mingw-4.4.4/debug/target-os-windows/has_icu_test.o" -Wl,-Bstatic -Wl,-Bdynamic -licuuc -licui18n -licudata -Wl,--end-group -g ...failed gcc.link bin.v2/libs/regex/build/gcc-mingw-4.4.4/debug/target-os-windows/has_icu.exe... ...failed updating 1 target... ...updated 8 targets... Performing configuration checks - has_icu builds : no warning: Graph library does not contain MPI-based parallel components. note: to enable them, add "using mpi ;" to your user-config.jam ...found 8 targets... ...updating 6 targets... common.mkdir bin.v2/libs/math common.mkdir bin.v2/libs/math/config common.mkdir bin.v2/libs/math/config/gcc-mingw-4.4.4 common.mkdir bin.v2/libs/math/config/gcc-mingw-4.4.4/debug common.mkdir bin.v2/libs/math/config/gcc-mingw-4.4.4/debug/target-os-windows gcc.compile.c++ bin.v2/libs/math/config/gcc-mingw-4.4.4/debug/target-os-windows/has_gcc_visibility.o cc1plus: warnings being treated as errors libs/math/config/has_gcc_visibility.cpp: In function 'int main()': libs/math/config/has_gcc_visibility.cpp:13: error: visibility attribute not supported in this configuration; ignored "i586-mingw32msvc-g++" -ftemplate-depth-128 -O0 -fno-inline -Wall -g -Werror -fvisibility=hidden -DBOOST_ALL_NO_LIB=1 -I"." -c -o "bin.v2/libs/math/config/gcc-mingw-4.4.4/debug/target-os-windows/has_gcc_visibility.o" "libs/math/config/has_gcc_visibility.cpp" ...failed gcc.compile.c++ bin.v2/libs/math/config/gcc-mingw-4.4.4/debug/target-os-windows/has_gcc_visibility.o... ...failed updating 1 target... ...updated 5 targets... - ../config//has_gcc_visibility builds : no ...found 46 targets... ...updating 1 target... gcc.compile.c++ bin.v2/libs/math/config/gcc-mingw-4.4.4/debug/target-os-windows/has_long_double_support.o ...updated 1 target... - ../config//has_long_double_support builds : 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. ************************************************************ Trying to build Boost.Thread with pthread support. If you need pthread you should specify the paths. You can specify them in site-config.jam, user-config.jam or in the environment. For example: PTW32_INCLUDE=C:\Program Files\ptw32\Pre-built2\include PTW32_LIB=C:\Program Files\ptw32\Pre-built2\lib ************************************************************ /home/francis/orig/boost_1_46_1/tools/build/v2/build/virtual-target.jam:1079: in virtual-target.register-actual-name from module virtual-target error: Duplicate name of actual target: <pstage/lib>libboost_date_time.a error: previous virtual target { common%common.copy-libboost_date_time.a.STATIC_LIB { gcc%gcc.archive-libboost_date_time.a.STATIC_LIB { gcc%gcc.compile.c++-gregorian/greg_month.o.OBJ { gregorian/greg_month.cpp.CPP } } { gcc%gcc.compile.c++-gregorian/greg_weekday.o.OBJ { gregorian/greg_weekday.cpp.CPP } } { gcc%gcc.compile.c++-gregorian/date_generators.o.OBJ { gregorian/date_generators.cpp.CPP } } } } error: created from ./stage-proper error: another virtual target { common%common.copy-libboost_date_time.a.STATIC_LIB { gcc%gcc.archive-libboost_date_time.a.STATIC_LIB { gcc%gcc.compile.c++-gregorian/greg_month.o.OBJ { gregorian/greg_month.cpp.CPP } } { gcc%gcc.compile.c++-gregorian/greg_weekday.o.OBJ { gregorian/greg_weekday.cpp.CPP } } { gcc%gcc.compile.c++-gregorian/date_generators.o.OBJ { gregorian/date_generators.cpp.CPP } } } } error: created from ./stage-proper error: added properties: <debug-symbols>off <define>NDEBUG <inlining>full <optimization>speed <runtime-debugging>off <variant>release error: removed properties: <debug-symbols>on <inlining>off <optimization>off <runtime-debugging>on <variant>debug /home/francis/orig/boost_1_46_1/tools/build/v2/build/virtual-target.jam:490: in actualize-no-scanner from module object(file-target)@3884 /home/francis/orig/boost_1_46_1/tools/build/v2/build/virtual-target.jam:135: in object(file-target)@3884.actualize from module object(file-target)@3884 /home/francis/orig/boost_1_46_1/tools/build/v2/build-system.jam:748: in load from module build-system /home/francis/orig/boost_1_46_1/tools/build/v2/kernel/modules.jam:283: in import from module modules /home/francis/orig/boost_1_46_1/tools/build/v2/kernel/bootstrap.jam:142: in boost-build from module /home/francis/orig/boost_1_46_1/boost-build.jam:17: in module scope from module
He says libicu was not found on my system, but according to the Synaptic Package Manage, I have the libicu-dev package installed.
I'm not sure how to fix it. Can anyone help?
Update 1
Following @Luke's recommendations, I am now gcc-mingw toolset. So, now my assembly instructions look like this:
tar xvf boost_1_46_1.tar.gz cd boost_1_46_1/ echo "using gcc : 4.4.4: i586-mingw32msvc-g++ ;" > user-config.jam ./bootstrap.sh ./bjam toolset=gcc-mingw target-os=windows
This leads to the following errors:
error: toolset gcc initialization: error: version 'mingw' requested but 'g++-mingw' not found and version '4.4.5' of default 'g++' does not match error: initialized from /home/francis/orig/boost-mingw/boost_1_46_1/tools/build/v2/build/toolset.jam:38: in toolset.using from module toolset /home/francis/orig/boost-mingw/boost_1_46_1/tools/build/v2/build-system.jam:481: in process-explicit-toolset-requests from module build-system /home/francis/orig/boost-mingw/boost_1_46_1/tools/build/v2/build-system.jam:561: in load from module build-system /home/francis/orig/boost-mingw/boost_1_46_1/tools/build/v2/kernel/modules.jam:283: in import from module modules /home/francis/orig/boost-mingw/boost_1_46_1/tools/build/v2/kernel/bootstrap.jam:142: in boost-build from module /home/francis/orig/boost-mingw/boost_1_46_1/boost-build.jam:17: in module scope from module
Update 2
I also tried specifying gcc-mingw in the user-config.jam . Then my assembly instructions look like this:
tar xvf boost_1_46_1.tar.gz cd boost_1_46_1/ echo "using gcc-mingw : 4.4.4: i586-mingw32msvc-g++ ;" > user-config.jam ./bootstrap.sh ./bjam toolset=gcc-mingw target-os=windows
That leads to:
error: version 'mingw' requested but 'g++-mingw' not found and version '4.4.5' of default 'g++' does not match
Update 3
The g++-mingw user-config.jam g++-mingw in the user-config.jam :
using g++-mingw : 4.4.4: i586-mingw32msvc-g++ ;
... leads to the same error.