检测到“RuntimeLibrary”的不匹配项

2023-07-08 14:45:22 浏览数 (1)

代码语言:javascript复制
1>libCGAL-vc140-mt-4.4-I-900.lib(all_files.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”(ConsoleApplication1.obj 中)
1>libcpmt.lib(ios.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”(ConsoleApplication1.obj 中)
1>libcpmt.lib(xlock.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”(ConsoleApplication1.obj 中)
1>libcpmt.lib(xthrow.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”(ConsoleApplication1.obj 中)
1>libcpmt.lib(locale0.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”(ConsoleApplication1.obj 中)
1>libcpmt.lib(syserror.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”(ConsoleApplication1.obj 中)
1>libcpmt.lib(fiopen.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”(ConsoleApplication1.obj 中)
1>libcpmt.lib(cerr.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”(ConsoleApplication1.obj 中)
1>libcpmt.lib(StlLCMapStringA.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”(ConsoleApplication1.obj 中)
1>libcpmt.lib(iosptrs.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”(ConsoleApplication1.obj 中)
1>libcpmt.lib(locale.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”(ConsoleApplication1.obj 中)
1>libcpmt.lib(winapisupp.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”(ConsoleApplication1.obj 中)
1>libcpmt.lib(winapinls.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”(ConsoleApplication1.obj 中)
1>libcpmt.lib(wlocale.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”(ConsoleApplication1.obj 中)
1>libcpmt.lib(xlocale.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”(ConsoleApplication1.obj 中)
1>libcpmt.lib(xdateord.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”(ConsoleApplication1.obj 中)
1>libcpmt.lib(StlCompareStringA.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”(ConsoleApplication1.obj 中)
1>libcpmt.lib(StlCompareStringW.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”(ConsoleApplication1.obj 中)
1>libcpmt.lib(StlLCMapStringW.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”(ConsoleApplication1.obj 中)
1>LINK : fatal error LNK1104: 无法打开文件“libCGAL-vc140-mt-s-4.4-I-900.lib”

错误是引用的是静态库,但是配置成动态库导致的,只需要修改成”多线程(/MT)“就可 这段错误的意思就是我调用的是静态库,但是我程序是dll动态,但是我这dll调用静态库就调用不成了吗? 解决方案如下

代码语言:javascript复制
生成错误:

error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”



解决:

在工程上右键-》属性-》c/c  -》代码生成-》运行库

改成(release为MT,debug为MTD),如果有多个工程(主工程中包含动态或者静态链接库工程)都得同样设置。即可解决!



发现::

上面方法不行啊!!!!!!!!!!!!!!!!



在工程上右键-》属性-》c/c  -》代码生成-》运行库

因为所选的工程运行库选择错误导致的。



其中四个选项的对应含义如下:



多线程调试Dll (/MDd) 对应的是MD_DynamicDebug

多线程Dll (/MD) 对应的是MD_DynamicRelease

多线程(/MT) 对应的是MD_StaticRelease

多线程(/MTd)对应的是MD_StaticDebug



这种问题,根据所给的提示,修改成对应的运行库就可以了

error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”



发现还是不行,折腾一上午,,发现不仅仅要把工程目录改成MT,所有cpp文件都要改成 MT

把工程目录改成MT,所有cpp文件都要改成 MT 改完以后是这样

代码语言:javascript复制
 <ItemGroup>
    <ClCompile Include="ConsoleApplication1.cpp">
      <RuntimeLibrary Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MultiThreaded</RuntimeLibrary>
    </ClCompile>
  </ItemGroup>

0 人点赞