【译】MSB8027: Two or more files with the name of ***.cpp will produce outputs to the same location.

原文链接:http://www.setoreaustralia.com/msb8027-two-or-more-files-with-the-name-of-texture-cpp-will-produce-outputs-to-the-same-location/

以一个以VC++环境下进展付出工作之“乐趣”。虽然看起来没有呀会招致问题,但一直移植一些*nix代码从不会圆满运行。在移植一个AR系统(spatial
augmented reality
system)时,我们有零星单Texture.cpp(一个针对实际环境纹理,另一个对准虚拟目标纹理)分别放在不同的子目录中,然而VC++编译器却休极端爱接受这种情景:

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppBuild.targets(942,5): warning MSB8027: Two or more files with the name of Texture.cpp will produce outputs to the same location. This can lead to an incorrect build result.  The files involved are src\geometry\Texture.cpp, src\graphics\Texture.cpp.

程序会连续编译,但最终究竟能够当含有错误文件要看错误类时起错误!

实在这个已休是啊新Bug了,在脚是Microsoft
Connect给来底流年线遭遇就出此题材,并且原本计划是当Visual Studio 2013
Update 1就该得到缓解(我今天以用Update
3然而连无解决!):https://connect.microsoft.com/VisualStudio/feedback/details/797460/incorrect-warning-msb8027-reported-for-files-excluded-from-build

釜底抽薪措施

VC++编译源文件时默认全部出口(对象文件)到同一个目录下,遇到和名源文件覆盖前的同名对象文件。为了缓解此问题,你可装输出路径和来自文件路径类似。以下操作以Visual
Studio 2013 (Update 3)下适用:

右键项目->属性->配置属性->C/C++->输出文件->对象文件称,将$(IntDir)改也$(IntDir)/%(RelativeDir)/。

设置完毕后,编译阶段亚洲必赢bwin696.com输出路径将会管来自文件路径考虑进去而非是特考虑来自文件称。

祝愿君顺利!

相关文章