c++ - 构建 Boost 系统库失败

标签 c++ gcc boost mingw qnx

我正在尝试使用命令从 Boost 构建“系统”库:

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

不断报错:

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...

rt lib 似乎丢失了,我在哪里可以获得这样的 lib 以成功编译'system' lib?

最佳答案

我的问题的解决方案:

  • 首先要做的是获取 MinGW 并将其放在 C:\MinGW 下。
  • 在 C:\MinGW\bin 中应该有 gcc
  • 运行命令。
  • 在boost(默认C:\boost_1_57_0)主文件夹
  • 使用命令设置路径:'set PATH=c:\mingw\bin;%PATH%'
  • 转到 boost 文件夹的 tools\build 目录并运行“bootstrap mingw”
  • 要在根目录类型中构建系统库:
  • 'tools\build\b2 toolset=gcc --target-os=qnxnto --build-type=complete stage --with-system'
  • .a 文件将在 stage\libs 文件夹中

关于c++ - 构建 Boost 系统库失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27687681/

相关文章:

c++ - boost::remove_if 导致错误(只读变量不可赋值)

c++ - 链表结构推送和弹出

c++ - 如何允许线程 2 在我在线程 1 中打开的端口上进行通信?

c# - 如何将 DLL 访问代码从 C++ 移植到 C#

gcc - 构建 R 包时如何链接静态库

c++ - boost::intrusive::list with the auto-unlink hook:我可以使用列表中的值来确定列表是否只有一个元素吗?

c++ - 计算力矩时 OpenCV 断言失败

gcc - 有没有更有效的方法将4个连续的double广播到4个YMM寄存器中?

gcc - 为 arm32 构建内核时对 __aeabi_ldivmod 的 undefined reference

c++ - Boost 目录迭代器 "no such file or directory"