我的* .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文件的路径,它会编译。
所以有任何线索为什么会发生这种情况?以及如何解决它?
答案 0 :(得分:2)
可能是因为.. \ .. \ Some \ Reference中没有名为“StdAfx.h”的文件。当#include“StdAfx.h”时,它看起来的第一个位置是当前目录;然后,它会检查包含路径中配置的所有目录。
此外,我敢打赌你在与myFile.cpp相同的目录中有一个StdAfx.h。当您将这些CPP文件移动到包含myFile.cpp的目录时,当它在当前目录中检查StdAfx.h时,它会成功并包含它。这就是移动文件解决问题的原因。
如果你想使它适用于.. \ .. \ Some \ Reference中的文件,那么你需要将myFile.cpp的目录添加到包含路径(在你的项目设置中)。