c++ - 我有静态或动态 boost 库吗?

标签 c++ boost

我已经运行了 bjam.exe --build-dir="C:\build-boost"--build-type=minimal msvc stage

例如,现在我有带有这些 header 的库 .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 你想静态链接它(boost)。如果您使用/MT 或/MTd 编译您的 VC 项目,您还需要使用 runtime-link=static 选项来告诉 boost 您将静态链接到 VC 运行时库。

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

我构建 boost 的命令行是

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

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

相关文章:

c++ - 庞大的宏定义重载

c++ - 继承和编译器生成的函数

linux - 没有可用的 boost 线程?

c++ - boost program_options 中的链接错误

c++ - 通过纹理四边形的 OpenGL 字体

c++ - 循环运行的函数超出了它的需要

c++ - 用参数初始化

c++ - boost::与 boost::asio 结合在一起。 boost::bind 不起作用,从示例复制

C++:容器替换 vector/deque 的巨大尺寸

c++ - boost 图形库,depth_first_search 不在 msvc 中调用 finish_edge