【问题标题】:what's the difference between mt-gd and mt-s librarymt-gd 和 mt-s 库有什么区别
【发布时间】:2011-08-26 06:00:45
【问题描述】:

在boost中,有两种libs,一种以mt-gd结尾,另一种以mt-s结尾。这两者有什么区别?

【问题讨论】:

    标签: boost


    【解决方案1】:

    阅读Boost Getting Started on Windows

    • mt:多线程
    • d :添加 ABI 标签,可用于:
      • g:使用标准和运行时支持库的调试版本。
      • s:静态链接到标准和运行时支持库。
      • 等等

    【讨论】:

    • 在 windows 中使用 .\b2 构建时,默认构建 mt 和 mt-g 库。要构建 mt-s 库,请使用 .\b2 runtime-link=static。默认情况下,这些库是在“stage”目录而不是“libs”目录中创建的。
    【解决方案2】:

    正如其他答案和 cmets 所指出的,这些代表不同的配置。有了这个答案,我想给出一个更完整的概述并链接到相应的 Visual Studio 配置:

    1. Boost 的 -mt-s 对应于 VS 的 Runtime Library 设置 /MT
    2. Boost 的 -mt-sgd 对应于 VS 的 Runtime Library 设置 /MTd
    3. Boost 的 -mt 对应于 VS 的 Runtime Library 设置 /MD
    4. Boost 的 -mt-gd 对应于 VS 的 Runtime Library 设置 /MDd

    第一个和第二个可以用./b2 runtime-link=static threading=multi构建
    第三个和第四个可以用./b2 runtime-link=shared threading=multi构建

    【讨论】:

    • 很好的综合答案。你拯救了这一天!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 2021-02-26
    相关资源
    最近更新 更多