【发布时间】:2021-04-19 18:12:57
【问题描述】:
我使用 Visual Studio 2017 打开 cmake 项目。我有一个使用 MDd 运行时库的调试应用程序 - CMAKE_CXX_FLAGS_DEBUG:/MDd /Zi /Ob0 /Od /RTC1。当我尝试链接到发布静态库(MD 运行时)时,出现以下错误:
error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in main.cpp.obj
error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in main.cpp.obj
我可以构建一个调试静态库(MDd 运行时库)并链接到它,但我想知道该问题是否有任何解决方法?
【问题讨论】:
-
“我想知道这个问题是否有任何解决方法?” - 您要求什么样的“解决方法”?您不能将可执行文件与具有不同 CRT 设置的库链接。没门。参见例如那个问题:stackoverflow.com/questions/14714877/….
标签: cmake visual-studio-2017 linker linker-errors static-linking