我有静态或动态提升库吗?

新手上路,请多包涵

我跑了 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

我哪里错了?

原文由 snoz 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 248
1 个回答

有点令人困惑的是,有两个“静态”选项可用于使用 MSVC 构建提升。

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

原文由 ehambright 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题