2013-10-28 25 views
0

我已經在網上查找並獲得了這個想法,但只是想問一下確定。用於發佈配置的運行時庫(靜態庫)

我轉換一個本地C++包裝到一個C++/CLI的項目,爲了被「看到」 VB.NET

我轉換的項目有一個FORTRAN靜態庫的依賴性。

在調試配置中,我的C++/CLI項目使用多線程調試DLL(/ MDd),我的fortran靜態庫使用調試多線程DLL(/ libs:dll/threads/dbglibs)。我可以編譯都很好。

在Release配置中,我有一些問題。我的C++/CLI項目使用多線程DLL(/ MD),我的fortran靜態庫使用Multithread DLL。這導致一堆未解決的令牌(如unresolved token "extern "C" void __cdecl __CxxUnregisterExceptionObject(void *,int)"

如果我改變fortran靜態庫使用調試多線程DLL,它工作正常。

我的問題:是否Fortran靜態庫使用調試多線程DLL在發佈配置不好?我想調試開關應該只用於調試配置,但我不知道如何擺脫錯誤,否則...

回答

0

我已經能夠解決這個問題。

靜態庫最初配置爲發佈配置中的多線程,所以我將其更改爲。我的C++/CLI項目也有一個/nodefaultlib:msvcrt.lib開關,所以我刪除了它,它編譯了