Anv*_*esh 19 c++ boost shared-libraries static-libraries visual-studio
我正在尝试使用MSVC(VS 2010)在Windows 7中构建boost库.
我在bjam命令行选项中遇到了选项运行时链接和链接.我想知道它们是如何使用的,它们之间的确切区别是什么.
我使用此命令行构建了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.lib
4)libboost_regex-VC100-S-1_47.lib
2和3 .lib文件有什么区别?它们都是静态库.我已经阅读了Boost文档,但没有找到太多解释.
TIA
Pab*_*blo 23
runtime-link指的是编译器的运行时是如何链接的.也就是说,它对应于VC的Multithreaded对比Multithreaded DLL选择.运行时表示使用编译器可用的标准库所需的组件.
您可能已经在某些时候看到了动态链接文件:MSVCRTXX.DLL(C运行时)和MSVCPXX.DLL(C++标准库),MFCXX.DLL(MFC核心类).静态对应物是LIBC和LICBP(参见此处的库表)
构建Boost时使用的runtime-link选项应与用于客户端代码的选项匹配.否则,由于链接时或运行程序时运行时不匹配,您将收到错误.
在构建程序以使用动态链接运行时时,需要在部署应用程序时包含VC可再发行组件.
link 指的是您的建筑将如何链接到的升级库,无论是作为静态链接库还是动态链接库.
| 归档时间: |
|
| 查看次数: |
10807 次 |
| 最近记录: |