Visual Studio C ++ 2008链接问题

时间:2009-07-26 07:23:41

标签: c++ visual-studio linker compilation

我的项目有很多包含多个项目的解决方案。有2个配置:

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

我们有第三方图书馆。我们应该为每个配置提供2个版本(使用/ MTd编译的/ MT和Debug版本编译的发行版本),还是只有一个版本(/ MT或/ MTd)?

由于 迪马

1 个答案:

答案 0 :(得分:6)

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

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

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