用于发布配置的运行时库(静态库)

时间:2013-10-28 17:31:59

标签: clr compiler-options

我已经在网上找到了想法,但想要确定一下。

我将原生c ++包装器转换为c ++ / CLI项目,以便被VB.NET“看到”

我转换的项目依赖于fortran静态库。

在Debug配置中,我的C ++ / CLI项目使用多线程调试DLL(/ MDd),而我的fortran静态库使用Debug Multithread DLL(/ libs:dll / threads / dbglibs)。我可以编译好。

在发布配置中,我遇到了一些问题。我的C ++ / CLI项目使用多线程DLL(/ MD),我的fortran静态库使用多线程DLL。这导致一堆未解决的令牌(如unresolved token "extern "C" void __cdecl __CxxUnregisterExceptionObject(void *,int)"

如果我更改fortran静态库以使用Debug Multithread DLL,它可以正常工作。

我的问题:使用Fortran静态库在Release配置中使用Debug Multithread DLL是不是很糟糕?我认为调试开关只应该在Debug配置中使用,但我不知道如何摆脱错误...

1 个答案:

答案 0 :(得分:0)

我已经能够解决这个问题了。

静态库最初在Release配置中配置为Multithreaded,因此我将其更改为。我的C ++ / CLI项目也有一个/nodefaultlib:msvcrt.lib开关,所以我删除了它并编译