【问题标题】:boost lib build configuration variationsboost lib 构建配置变化
【发布时间】:2010-12-11 10:41:17
【问题描述】:

我是 boost 新手 - 你能告诉我黑白有什么区别吗 boost 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事物的整个分类。

【问题讨论】:

    标签: c++ boost linker


    【解决方案1】:
    [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: Boost 调试
      • p:使用“STLPort 标准库”
      • n:使用 STLPort 已弃用的“本机 iostreams”功能
    • 1_35:增强版
    • .lib:扩展因操作系统的约定而异

    基于this(感谢@n1ckp)

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

    【讨论】:

    • 对所有选项的很好解释
    【解决方案2】:

    这里是文档的链接,以获取有关许多后缀含义的完整信息:

    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

    虽然看起来还是一样的,所以任何一个链接都应该是好的。

    【讨论】:

      【解决方案3】:

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

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

      在 Linux 上,gd 似乎只是 d,所以也许 g 除了“带有调试符号”之外还有其他含义。

      【讨论】:

      • d 表示调试符号,g 表示链接到调试标准库
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-07
      • 1970-01-01
      • 2022-08-19
      相关资源
      最近更新 更多