在我不明白为什么会得到它的情况下,我遇到了常见的链接器错误。我将项目从静态链接(/ MT)更改为动态链接(/ MD)。在此之后我收到以下错误:
Error LNK2038 mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't
match value 'MT_StaticRelease' in XY.obj XXX [some folders]\XYZ.obj
XY和XYZ的源文件都是同一项目的一部分。该项目是用/ MD编译的。我首先想到我的重建中没有更新某些文件,所以我清理了构建并重建了项目。由于我仍然遇到相同的错误,我手动删除了包含.obj文件的构建文件夹并重建项目。我仍然得到错误。
我不明白的第二个影响是包含的库(我从静态版本更改为动态版本)找不到几个符号:
Error LNK2001 unresolved external symbol __imp__strncat LAAPTOF_Fuzzy_XOP
[some folders]\ccc_vc120_md.lib(MxNET.obj)
等...
当我包含库的静态版本时,这些错误消失但我没有得到关于运行时库不匹配的错误,我希望得到它。
所有这些错误仅出现在32位版本的项目中。 64位版本构建良好。我检查了所有参数,它们是相同的,除非64位版本需要不同的参数。
有人可以向我解释我可能做错了吗?
答案 0 :(得分:0)
我已经解决了这个问题。我的项目曾经是一个visual studio 2010项目。我已经被警告过,即使转换器告诉你,将项目转换为更新版本的visual studio并不总是顺利进行。我不知道这是否真的是问题,但在设置新项目文件后,一切都正确链接。