2009-07-26 135 views
2

我的項目有一堆包含多個項目的解決方案。還有就是2點的配置:Visual Studio C++ 2008鏈接問題

  • 發行(/ MT)
  • 調試(/ MTD)

我們有一個第三方庫。我們是否應該爲每個配置(使用/ MT編譯的發佈版本和使用/ MTd編譯的調試版本)擁有2個版本,還是隻有一個版本(/ MT或/ MTd)?

感謝 迪馬

回答

6

一般情況下,你需要有一個外部庫也有兩個版本,並consistenly調試或釋放編譯一切。問題是混合不同的C運行時(CRT,例如調試和釋放CRT)會導致崩潰。

有一個例外,您只能使用發佈版本:如果外部庫是DLL,並且您沒有將任何CRT對象從一個CRT傳遞到另一個CRT,則限制不適用。

CRT對象是文件指針,malloc的塊(如果只有一個庫分配,另一個版本),一個當前的區域的概念,和時區的概念。