2010-01-28 93 views
2

我正在使用項目屬性 - > c/C++ - > CodeGeneration-> RuntimeLib:MTd(使用靜態CRT庫-LIBCMTD)在Visual Studio 2005中構建我的應用程序。該應用程序使用MDd中構建的第三方DLL和庫(使用動態CRT庫MSVCRTD)。如何構建在VS2005中使用MDd dll的MTd項目

我得到了鏈接錯誤爲: MSVCRTD.LIB(MSVCR80D.dll):錯誤LNK2005:在LIBCMTD.lib(mktime64.obj) MSVCRTD.LIB(MSVCR80D.dll)已經定義__mktime64:錯誤LNK2005:錯誤LNK2005:在LIBCMTD.lib(loctim64.obj)已經定義__localtime64

我無法改變的第三方設置__gmtime64已經LIBCMTD.lib(gmtime64.obj) MSVCRTD.LIB(MSVCR80D.dll)定義。如果我動態使用CRT庫,我的應用程序運行良好,但我無法更改。

感謝

回答

3

有一個開關來強制鏈接忽略多種定義: http://msdn.microsoft.com/en-us/library/70abkas3.aspx

+0

除此之外,還有解決方案嗎?不知怎的,我覺得這不是安全的。 謝謝 – 2010-01-28 12:29:31

+0

可能......但那是我唯一知道的。如果你這樣做,最好在沒有這個開關的情況下建立一個版本,然後建立一個發佈版本來檢查除了那些CRT庫之外是否還有其他(可能是不需要的)多重定義。 – smerlin 2010-01-28 15:39:03

+0

這非常有價值!我已經打了差不多一個星期了,我不知道這個開關。謝謝! (是的,我知道這可能是一個快速入侵,但這就是我想要的) – kizzx2 2010-07-15 05:43:16

相關問題