【问题解决】warning MSB8012:TargetPath与Linker的OutputFile属性值不匹配

问题缘由:

因项目需要,决定使用libconfig库。下载的libconfig1.4.9默认使用的是vs2008的解决方案配置。鉴于我的工作环境是vs2010,并且后续工作中也需要使用到vs2010,所以决定将用将该项目从vs2008解决方案,转换为vs2010的解决方案。

转换一切顺利。在进行项目生成时,注意到存在warning:

1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(990,5): warning MSB8012: TargetPath(C:\Users\lenovo\Desktop\libconfig-1.4.9\Debug\libconfig.dll) 与 Linker 的 OutputFile 属性值(C:\Users\lenovo\Desktop\libconfig-1.4.9\Debug\libconfig_d.dll)不匹配。这可能导致项目生成不正确。若要更正此问题,请确保 $(OutDir)、$(TargetName) 和 $(TargetExt) 属性值与 %(Link.OutputFile) 中指定的值匹配。
1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(992,5): warning MSB8012: TargetName(libconfig) 与 Linker 的 OutputFile 属性值(libconfig_d)不匹配。这可能导致项目生成不正确。若要更正此问题,请确保 $(OutDir)、$(TargetName) 和 $(TargetExt) 属性值与 %(Link.OutputFile) 中指定的值匹配。

经了解,发现该问题可能是由转换和升级解决方案时造成的问题。

------------------------------------------------

问题解决:

其实就是和warning中提示的一样,在"项目->属性->配置属性->常规"选项卡下的“目标文件名”选项,和“项目->属性->配置属性->链接器->常规”选项卡下的“输出文件”选项,不一致,所以造成了输出文件命名上的矛盾,从而产生该warning。

【问题解决】warning MSB8012:TargetPath与Linker的OutputFile属性值不匹配_第1张图片

【问题解决】warning MSB8012:TargetPath与Linker的OutputFile属性值不匹配_第2张图片


要解决该warning,只要修改链接器->常规->输出文件,或者修改配置属性->常规->目标文件名即可。此处我选择的是修改链接器的输出文件名。

【问题解决】warning MSB8012:TargetPath与Linker的OutputFile属性值不匹配_第3张图片

修改完成。再清理解决方案,重新生成,便没有warning产生。生成的.lib与.dll文件都没有_d。


网络上的相关资料:百度C++吧:warning MSB8012怎么解决

你可能感兴趣的:(开发环境)