Visual Studio C++ 2008链接问题

dim*_*mba 2 c++ linker compilation visual-studio

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

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

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

谢谢迪马

Mar*_*wis 6

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

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

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