mt-gd和mt-s库之间的区别是什么

use*_*414 29 boost

在boost中,有两种类型的lib,一种是以#结尾mt-gd,另一种是以mt-s.这两者有什么区别?

O.C*_*.C. 47

阅读Windows上的Boost入门

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

  • 使用.\ b2在Windows中构建时,默认情况下会构建mt和mt-g库.要构建mt-s库,请使用`.\ b2 runtime-link = static`.默认情况下,库在'stage'目录而不是'libs'目录中创建. (8认同)

j00*_*0hi 10

正如其他答案和评论中所指出的,这些代表不同的配置。有了这个答案,我想提供一个更完整的概述并链接到相应的 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