我已经在网上看过了,有点明白了,但我想问一下,只是想确认一下。
我将原生c++包装器转换为c++/CLI项目,以便被VB.NET“看到”。
我转换的项目依赖于fortran静态库。
在调试配置中,我的C++/CLI项目使用多线程调试DLL (/MDd),我的fortran静态库使用调试多线程DLL (/libs:dll /threads /dbglibs)。我可以把这两个都编译好。
在发布配置中,我有一些问题。我的C++/CLI项目使用多线程动态链接库(/MD),我的fortran静态库使用多线程动态链接库。这会导致一堆未解析的令牌(如unresolved token "extern "C" void __cdecl __CxxUnregisterExceptionObject(void *,int)")
如果我将fortran静态库更改为使用Debug多线程DLL,它将正常工作。
我的问题是:让fortran静态库在发布配置中使用Debug多线程DLL是不是很糟糕?我认为调试开关应该只在debug配置中使用,但我不知道如何消除错误,否则...
发布于 2013-10-29 02:04:38
我已经解决了这个问题。
在发布配置中,静态库最初被配置为多线程,所以我将其更改为多线程。我的C++/CLI项目也有一个/nodefaultlib:msvcrt.lib开关,所以我删除了它,它会编译
https://stackoverflow.com/questions/19641305
复制相似问题