提升lib构建配置变化

时间:2009-10-29 22:35:53

标签: c++ boost linker

我是新手 - 你能告诉我有什么不同吗? 升压库的以下变体以及在这种情况下我需要链接到哪一个?

  • 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 事物的整个分类。

3 个答案:

答案 0 :(得分:17)

[lib][boost_unit_test_framework]-[vc80]-[mt]-[sgd]-[1_35][.lib]
  • lib:在Linux上,所有文件都以此为前缀
    • 在Windows上,此前缀不在“导入库和DLL”
  • boost_unit_test_framework:以boost_
  • 开头的图书馆名称
  • vc80:用于构建此库的工具集和版本
  • mt:表示支持多线程
  • sgd:每个字母都表示一些东西
    • s:静态链接
    • g:已链接到调试库
    • y:“使用Python的特殊调试版本”
    • d:提升调试
    • p:使用“STLPort标准库”
    • n:使用STLPort已弃用的“原生iostreams”功能
  • 1_35:提升版
  • .lib:扩展程序因操作系统中的约定而异[/ li>

基于this(感谢@ n1ckp)

还可以查看Boost 1.34.0 binaries available for download列表中的一些示例。

答案 1 :(得分: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

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

答案 2 :(得分:8)

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

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

在Linux上 gd 似乎只是 d ,所以也许 g 意味着除了“with debug symbols”之外的其他内容。