提升lib构建配置变化

Ste*_*eve 18 c++ linker boost

我是新手 - 你可以告诉我有什么区别b/w升级lib的以下变化以及在这种情况下需要链接到哪一个?

  • libboost_unit_test_framework-vc80-1_35.lib
  • libboost_unit_test_framework-VC80-GD-1_35.lib
  • libboost_unit_test_framework-VC80-MT-1_35.lib
  • libboost_unit_test_framework-VC80-MT-GD-1_35.lib
  • libboost_unit_test_framework-VC80-MT-S-1_35.lib
  • libboost_unit_test_framework-VC80-MT-SGD-1_35.lib
  • libboost_unit_test_framework-VC80-S-1_35.lib
  • libboost_unit_test_framework-VC80-SGD-1_35.lib

那么,我实际上要了解的是_gd,mt,sgd事物的整个分类.

Nat*_*ate 17

[lib][boost_unit_test_framework]-[vc80]-[mt]-[sgd]-[1_35][.lib]
Run Code Online (Sandbox Code Playgroud)
  • lib:在Linux上,所有文件都以此为前缀
    • 在Windows上,此前缀不在"导入库和DLL"上
  • boost_unit_test_framework:以...开头的库名称 boost_
  • vc80:用于构建此库的工具集和版本
  • mt:表示多线程支持
  • sgd:每个字母都表示某事
    • s:静态链接
    • g:链接到调试库
    • y:"使用Python的特殊调试版本"
    • d:提升调试
    • p:使用"STLPort标准库"
    • n:使用STLPort不推荐使用的"本机iostreams"功能
  • 1_35:Boost版本
  • .lib:扩展因操作系统中的约定而异

基于(感谢@ n1ckp)

另请参阅一些示例中可供下载Boost 1.34.0二进制文件列表.

  • 很好的解释所有选项 (2认同)

n1c*_*ckp 12

以下是有关许多后缀含义的完整信息的文档链接:

windows:http://www.boost.org/doc/libs/1_40_0/more/getting_started/windows.html#library-naming

linux:http://www.boost.org/doc/libs/1_40_0/more/getting_started/unix-variants.html#library-naming

虽然看起来它仍然是相同的,所以任何一个链接都应该是好的.


AFo*_*lia 8

我在Linux上使用Boost,但我认为这些来自Linux命名.

  • mt多线程/线程安全
  • s静态库
  • gd带有调试符号

在Linux上,gd似乎只是d,所以也许g可能意味着除了"with debug symbols"之外的其他东西.

  • d表示调试符号,g表示与调试标准库链接 (5认同)