1

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

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

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

我该如何解决这个错误?

4

4 回答 4

1

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

于 2013-07-07T04:24:09.283 回答
0

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

于 2013-07-07T03:48:49.997 回答
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 中重新打开项目并“全部重建”。

于 2013-07-07T09:06:46.737 回答
-3

我该如何解决这个错误?

通过开始一个新项目。

于 2013-07-07T03:30:01.773 回答