我正在尝试使用 MSVC (VS 2010) 在 Windows 7 中构建 boost 库。
我遇到过这些选择运行时链接和链接在 bjam 命令行选项中。我想知道它们是如何使用的以及它们之间的确切区别是什么。
我已经使用此命令行构建了 Boost Regex 库
bjam --with-regex 变体=发布 --build-options=完整
它生成了这些文件:
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.lib
4)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(参见here http://msdn.microsoft.com/en-us/library/abx4dbyh.aspx对于图书馆表)
构建 Boost 时使用的运行时链接选项应与用于客户端代码时的选项相匹配。否则,由于运行时不匹配,无论是在链接时还是在运行程序时,您都会收到错误。
当构建程序以使用动态链接运行时时,您需要包括VC可再发行 http://www.microsoft.com/download/en/details.aspx?id=5555部署您的应用程序时。
link
指的是您的构建将如何链接到 boost 库,无论是作为静态链接库还是动态链接库。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)