【问题标题】:Visual Studio C++ 2008 linking questionVisual Studio C++ 2008 链接问题
【发布时间】:2009-07-26 07:23:40
【问题描述】:

我的项目有一堆包含多个项目的解决方案。有两种配置:

  • 发布 (/MT)
  • 调试 (/MTd)

我们有一个 3rd 方库。我们应该为每个配置有 2 个版本(使用 /MT 编译的发布版本和使用 /MTd 编译的调试版本)还是只有一个版本(/MT 或 /MTd)就足够了?

谢谢 迪玛

【问题讨论】:

    标签: c++ visual-studio linker compilation


    【解决方案1】:

    通常,您还需要拥有该外部库的两个版本,并且一致地编译所有内容以进行调试或发布。问题是混合不同的 C 运行时(CRT,例如调试和发布 CRT)会导致崩溃。

    有一个例外,您可以只使用发布版本:如果外部库是 DLL,并且如果您没有将任何 CRT 对象从一个 CRT 传递到另一个 CRT,则该限制不适用。

    CRT 对象是 FILE 指针、malloc 块(仅当一个库分配和其他版本时)、当前语言环境的概念和时区的概念。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-12
      相关资源
      最近更新 更多