Boost库构建-运行时链接和链接选项之间的差异
Boost libs building - difference between runtime-link and link options
我正在尝试用MSVC (VS 2010)在Windows 7中构建boost库。
我在bjam命令行选项中遇到了runtime-link和link选项。我想知道它们是如何使用的,它们之间的确切区别是什么。
我已经使用这个命令行构建了Boost Regex库
bjam——with-regex variant=release——build-options=complete
生成了以下文件:
1)boost_regex-vc100-mt-1_47.dll(导入库:boost_regex-vc100-mt-1_47.lib)
2) libboost_regex-vc100-mt-1_47.lib
3) libboost_regex-vc100-mt-s-1_47.lib4) libboost_regex-vc100-s-1_47.lib
2和3 .lib文件的区别是什么?它们都是静态库。我已经通过了Boost文档,但没有找到太多的解释。
TIA
runtime-link
指的是编译器运行时的链接方式。也就是说,它对应于VC的Multithreaded
vs. Multithreaded DLL
选项。运行时是指使用编译器提供的标准库所需的组件。
你可能在某些地方看到过动态链接文件:MSVCRTXX.DLL
(C运行时)和MSVCPXX.DLL
(c++标准库),MFCXX.DLL
(MFC核心类)。静态对应的是LIBC和LICBP(参见这里的库表)
在构建Boost时使用的运行时链接选项应该与在客户端代码中使用的选项匹配。否则,在链接时或在运行程序时,您将获得由于不匹配的运行时而导致的错误。
当你构建你的程序使用动态链接运行时,你需要在部署你的应用程序时包括VC可分发版。
link
指的是你的建筑将被链接到的boost库,无论是作为静态链接库还是动态链接库。
- 文件删除(使用取消链接)与释放所有磁盘空间之间的延迟
- 如何在这两个分类的链接列表之间获得开关的位置
- 链接时,"grab what you need" 和 "grab all" 之间是否有某些内容(-wl,--whole-archive)?
- unordered_set与链接列表之间的性能比较
- 链接列表C 类,这两个添加节点实现之间的差异是什么?
- C 在与.o链接和.A文件之间有所不同:不同的行为,原因
- 如何使用C#或C 之间创建文本框之间的链接
- C# 和 C++ 代码之间的链接在 64 位计算机中不起作用
- Delphi链接器和C++链接器之间的区别
- Qt在文件夹之间创建链接
- C++ 中编译器、链接器和调试器之间的区别
- 文件之间的链接 - 它究竟是如何工作的
- Natty Narwhal和Oneiric Ocelot之间共享对象链接的差异
- 如何在树模型中维护父 QStandardItems 和数据库行 ID 之间的链接
- 链接和绑定之间的区别是什么
- matlab R2013a与MS VC++2013之间的链接错误
- 链接列表中的节点、&node 和 node->next 之间的区别
- 点和三角形之间的链接
- C++如何在VS 2015中设置文件之间的链接
- 库设计:允许用户在"header-only"和动态链接之间做出决定?