Visual studio 2010 MSBuild:<;clcompile>;相对路径问题

Visual studio 2010 MSBuild:<;clcompile>;相对路径问题,visual-studio-2010,msbuild,Visual Studio 2010,Msbuild,我在*.vcxproj中有一些相对路径 <ItemGroup> <ClCompile Include="myFile.cpp" /> <ClCompile Include="..\..\Some\Reference\file.cpp" /> <ClCompile Include="..\..\Some\Other.cpp" /> </ItemGroup> <ItemGroup> <ClInclude I

我在*.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文件,它就会编译


那么有什么线索说明为什么会发生这种情况吗?以及如何修复它?

可能是因为….\Some\Reference中没有名为“StdAfx.h”的文件。当您#包括“StdAfx.h”时,它首先会显示在当前目录中;然后,它检查include路径中配置的所有目录

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

如果要使其与..\..\Some\Reference中的文件一起工作,则需要将myFile.cpp的目录添加到include路径(在项目设置中)