Search code examples
c++gccboostmingwqnx

Fail to build Boost system library


I'm trying to build 'system' library from Boost using command:

bjam --toolset=gcc target-os=qnx --build-dir=c:\boost_1_57_0 --build-type=complete --with-system stage

and keep getting error:

C:\boost_1_57_0>bjam --toolset=gcc target-os=qnx --build-dir=c:\boost_1_57_0 --build-type=complete --with-system stage ...found 1 target... ...updating 1 target... config-cache.write c:\boost_1_57_0\boost\bin.v2\project-cache.jam ...updated 1 target...

Component configuration:

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

...found 205 targets... ...updating 4 targets... gcc.link.dll c:\boost_1_57_0\boost\bin.v2\libs\system\build\gcc-mingw-4.8.1\debug\target-os-qnx\threading-multi\libboost_system-mgw48-mt-d-1_57.so.1.57.0 c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -lrt collect2.exe: error: ld returned 1 exit status

"g++"    -o "c:\boost_1_57_0\boost\bin.v2\libs\system\build\gcc-mingw-4.8.1\debug\target-os-qnx\threading-multi\libboost_system-mgw48-mt-d-1_57.so.1.57.0"

-shared -Wl,--start-group "c:\boost_1_57 _0\boost\bin.v2\libs\system\build\gcc-mingw-4.8.1\debug\target-os-qnx\threading-multi\error_code.o" -Wl,-Bstatic -Wl,-Bdynamic -lrt -Wl,--end-group -g -pthread

...failed gcc.link.dll c:\boost_1_57_0\boost\bin.v2\libs\system\build\gcc-mingw-4.8.1\debug\target-os-qnx\threading-multi\libboost_system-mgw48-mt-d-1_57.so.1.57.0... ...skipped libboost_system-mgw48-mt-d-1_57.so.1.57.0 for lack of libboost_system-mgw48- mt-d-1_57.so.1.57.0... gcc.link.dll c:\boost_1_57_0\boost\bin.v2\libs\system\build\gcc-mingw-4.8.1\release\target-os-qnx\threading-multi\libboost_system-mgw48-mt-1_57.so.1.57.0 c:/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -lrt collect2.exe: error: ld returned 1 exit status

"g++"    -o "c:\boost_1_57_0\boost\bin.v2\libs\system\build\gcc-mingw-4.8.1\release\target-os-qnx\threading-multi\libboost_system-mgw48-mt-1_57.so.1.57.0"

-shared -Wl,--start-group "c:\boost_1_57 _0\boost\bin.v2\libs\system\build\gcc-mingw-4.8.1\release\target-os-qnx\threading-multi\error_code.o" -Wl,-Bstatic -Wl,-Bdynamic -lrt -Wl,--end-group -pthread

...failed gcc.link.dll c:\boost_1_57_0\boost\bin.v2\libs\system\build\gcc-mingw-4.8.1\release\target-os-qnx\threading-multi\libboost_system-mgw48-mt-1_57.so.1.57.0... ...skipped libboost_system-mgw48-mt-1_57.so.1.57.0 for lack of libboost_system-mgw48- mt-1_57.so.1.57.0... ...failed updating 2 targets... ...skipped 2 targets...

The rt lib seems to be missing, where can I obtain such lib to successfully compile 'system' lib?


Solution

  • Solution for my problem:

    • First thing to do is to get MinGW and put it under C:\MinGW.
    • In C:\MinGW\bin there should be gcc
    • Run cmd.
    • In boost (deflaut C:\boost_1_57_0) main folder
    • Set path using command: 'set PATH=c:\mingw\bin;%PATH%'
    • Go to the tools\build directory of your boost folder and run 'bootstrap mingw'
    • To build system lib in root directory type:
    • 'tools\build\b2 toolset=gcc --target-os=qnxnto --build-type=complete stage --with-system'
    • .a files will be in stage\libs folder