我跑了bjam.exe --build-dir="C:\build-boost" --build-type=minimal msvc stage
现在我有了带有这些头文件的库.lib

libboost_serialization-vc100-mt
libboost_serialization-vc100-mt-1_45
libboost_serialization-vc100-mt-gd
libboost_serialization-vc100-mt-gd-1_45

我相信这些应该是用于调试和发布版本的静态库。当我用Multi-threaded Debug (/MTd)运行编译器时,它给出了一个错误LNK1104: cannot open file 'libboost_serialization-vc100-mt-sgd-1_45.lib'它正在寻找一个-sgd
我要去哪里错了?

最佳答案

令人困惑的是,使用MSVC构建 boost 功能有两个“静态”选项。

B2.exe带有link=static选项,该选项告诉boost您要静态链接IT。如果要使用/MT或/MTd编译VC项目,则还需要使用runtime-link=static选项来告诉boost,您将静态链接到VC运行时库。

这是第二个runtime-link=static,它将-s放在.lib名称中。

我建立助力的命令行是

b2.exe --toolset=msvc variant=release link=static threading=multi runtime-link=static stage

关于c++ - 我有静态或动态Boost库吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4619764/

10-12 16:16