C ++链接器错误:链接器继续尝试包含以前存在和失败的文件

时间:2013-07-07 03:25:48

标签: c++ linker

我正在使用C ++ Visual Studio 2010中的游戏引擎。我现在已经编写了一段时间的C ++,但我从未学过链接器如何工作或如何调试与链接器相关的错误。谷歌没有太多帮助。

我目前收到的错误如下: c1xx:致命错误C1083:无法打开源文件:Old_Path \ File_Name.cpp'

我在以前在不同目录中的大约4个文件上收到此错误。我更改了目录,使我的项目结构更加清晰。旧目录根本不存在。我已经彻底改变了每个相应的包含(多次检查每个文件。包含自己没有给我任何错误)。但是,错误指定的路径是旧路径,而不是新路径。

如何解决此错误?

4 个答案:

答案 0 :(得分:1)

删除(不删除)项目中的这四个文件,然后添加表单菜单 - 项目 - 添加现有项目并重建项目。 顺便说一下,如果你没有为你的源文件定义任何搜索路径,那么cpp文件必须在相应的头文件的目录中。

答案 1 :(得分:0)

如果您的全局构建设置设置为在构建项目之前自动保存文件,则会发生这种情况。构建步骤使用外部进程和保存在磁盘上的项目文件的当前版本来构建项目。因此,您需要在构建成功之前删除(有时添加)文件后手动保存项目文件。您可以转到“文件”菜单并选择“全部保存”,按 CTRL - SHIFT - S 保存所有文件或重新打开项目

答案 2 :(得分:0)

听起来我的vcxproj文件已损坏。除其他外,此文件维护一个包含Visual Studio项目一部分的所有头文件和代码文件的列表。如果该文件列表与项目目录中的实际文件不同步,将指示编译器使用不存在的文件。

任何不匹配在解决方案资源管理器中显示的项目层次结构中的文件上标记错误图标。从那里,您可以右键单击该项目,然后“包含在项目中”或“从项目中排除”。

如果这不起作用,您还可以尝试在Visual Studio中关闭项目并在文本编辑器中打开vcxproj文件以手动修复它。例如,在我现在打开的项目文件底部附近,我看到了:

<ItemGroup>
    <ClInclude Include="BoundedInteger.h" />
    <ClInclude Include="stdafx.h" />
</ItemGroup>
<ItemGroup>
    <ClCompile Include="stdafx.cpp" />
    <ClCompile Include="BoundedInteger.cpp" />
    <ClCompile Include="Test.cpp" />
</ItemGroup>

确保存储在那里的信息实际上与您希望成为项目一部分的文件以及您实际拥有的磁盘上的文件相匹配。完成后,在VS中重新打开项目并“重建所有”。

答案 3 :(得分:-3)

  

如何解决此错误?

开始一个新项目。