MSBuild:<clcompile>,具有相对路径问题</clcompile>

时间:2011-11-03 03:27:10

标签: visual-studio-2010 msbuild

我的* .vcxproj

中有一些相对路径
<ItemGroup>
  <ClCompile Include="myFile.cpp" />
  <ClCompile Include="..\..\Some\Reference\file.cpp" />
  <ClCompile Include="..\..\Some\Other.cpp" />
</ItemGroup>
<ItemGroup>
  <ClInclude Include="..\..\..\SomeOther\Headers.h" />
  ...
</ItemGroup>

当我编译它时,它总是对两个文件抱怨如下

  

致命错误C1083:无法打开包含文件:'StdAfx.h':没有这样的文件或目录
  致命错误C1083:无法打开包含文件:'StdAfx.h':没有这样的文件或目录

当我手动将这些文件复制到包含myFile.cpp的目录时,更新proj文件的路径,它会编译。

所以有任何线索为什么会发生这种情况?以及如何解决它?

1 个答案:

答案 0 :(得分:2)

可能是因为.. \ .. \ Some \ Reference中没有名为“StdAfx.h”的文件。当#include“StdAfx.h”时,它看起来的第一个位置是当前目录;然后,它会检查包含路径中配置的所有目录。

此外,我敢打赌你在与myFile.cpp相同的目录中有一个StdAfx.h。当您将这些CPP文件移动到包含myFile.cpp的目录时,当它在当前目录中检查StdAfx.h时,它会成功并包含它。这就是移动文件解决问题的原因。

如果你想使它适用于.. \ .. \ Some \ Reference中的文件,那么你需要将myFile.cpp的目录添加到包含路径(在你的项目设置中)。