2013-10-28 2 views
0

저는 온라인에서 보았고 아이디어를 얻었지만 확실하게 묻기를 원했습니다. 릴리스 구성을위한 런타임 라이브러리 (정적 라이브러리)

나는 위해 VB.NET

에 의해

내 변환 된 프로젝트는 포트란 정적 라이브러리에 대한 종속성이 "볼"수, C++/CLI 프로젝트에 네이티브 C++ 래퍼를 변환.

디버그 구성에서 내 C++/CLI 프로젝트는 멀티 스레드 디버그 DLL (/ MDd)을 사용하고 포트란 정적 라이브러리는 디버그 다중 스레드 DLL (/ libs : dll/threads/dbglibs)을 사용합니다. 나는 둘 다 잘 컴파일 할 수있다.

릴리스 구성에서 몇 가지 문제가 있습니다. My C++/CLI 프로젝트는 멀티 스레드 DLL (/ MD)을 사용하고 포트란 정적 라이브러리는 멀티 스레드 DLL을 사용합니다. 이로 인해 해결되지 않은 토큰 (예 : unresolved token "extern "C" void __cdecl __CxxUnregisterExceptionObject(void *,int)")이 발생합니다.

디버그 멀티 스레드 DLL을 사용하도록 fortran 정적 라이브러리를 변경하면 올바르게 작동합니다.

내 질문 : 릴리스 구성에서 Fortran 정적 라이브러리 디버그 다중 스레드 DLL을 사용하고 있습니까? 디버그 구성을 디버그 구성에만 사용해야한다고 생각했지만 그렇지 않은 경우 오류를 제거하는 방법을 알지 못합니다.

답변

0

이 문제를 해결할 수있었습니다.

정적 라이브러리는 원래 릴리스 구성에서 다중 스레드로 구성되었으므로이를 변경했습니다. 내 C++/CLI 프로젝트에도 /nodefaultlib:msvcrt.lib 스위치가 있으므로 제거하고 컴파일했습니다.

관련 문제