2011-09-22 81 views
13

我试图在Windows 7中使用MSVC(VS 2010)构建boost库。提升库构建 - 运行时链接和链接选项之间的区别

我所遇到的bjam的命令行选项选项运行链接和链接。我想知道它们是如何使用的以及它们之间的确切区别。

我已经建立了使用此命令行

的bjam --with正则表达式变种=发行--build选项=完全

它产生这些文件中的升压正则表达式库:

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

回答

15

runtime-link指的是你的编译器的运行时是如何联系在一起的。也就是说,它对应于VC的MultithreadedMultithreaded DLL选项。运行时意味着使用编译器提供的标准库所需的组件。

你可能已经看到在一些点的动态链接文件:MSVCRTXX.DLL(C运行时)和MSVCPXX.DLL(C++标准库),MFCXX.DLL(MFC核心类)。静态对应部分是LIBC和LICBP(请参见用于库表的here

构建Boost时使用的运行时链接选项应与您用于客户端代码时的选项匹配。否则,您会在链接时或运行程序时由于运行时不匹配而导致错误。

在构建程序以使用动态链接运行时时,需要在部署应用程序时包含VC redistributable

link指您的建筑物将链接到的增强库的方式,可以是静态或动态链接库。

相关问题