我正在运行 Visual Studio C++,我有一个头文件“GameEngine.h”,我试图让另一个文件看到它。
当我#include“GameEngine.h”时,它给出了无法打开源文件的错误。我不知道该怎么做。我已经这样做了一千次,但由于某种原因,现在不起作用了。
您需要检查您的项目设置,在C++下,检查包含目录并确保它指向
GameEngine.h
所在的位置,另一个问题可能是GameEngine.h
不在您的源文件文件夹或任何include 目录并驻留在与项目文件夹相关的不同文件夹中。例如,您有 2 个项目 ProjectA
和 ProjectB
,如果您将 GameEngine.h
包含在 ProjectA
中的某些源/头文件中,则要正确包含它,假设 ProjectB
位于同一父文件夹中,请执行此操作:
include "../ProjectB/GameEngine.h"
如果你有这样的结构:
根\项目A
根\ProjectB <- GameEngine.h actually lives here
以防万一有人像我一样是新手,请仔细检查您的标头文件夹拼写是否正确。
例如:
<#include "Component/BoxComponent.h"
这会导致错误。相反,它需要是:
<#include "Components/BoxComponent.h"
令我惊讶并令我惊讶的一件事是,在继承的项目中,它所引用的文件是在项目文件夹外部的相对路径上引用的,但仍然存在于项目文件夹中。
在解决方案资源管理器中,单击每个出现错误的文件,打开“属性”窗口(右键单击,“属性”),并确保“相对路径”只是文件名(例如
MyMissingFile.cpp
)(如果它在项目中)文件夹。就我而言,它设置为:..\..\Some Other Folder\MyMissingFile.cpp
。
这是谷歌搜索“无法打开源文件”时的最佳结果,所以我想我会分享我的问题,因为我已经包含了正确的路径。
我不确定其他 IDE 或编译器,但至少对于 Visual Studio,请确保包含目录列表中没有空格。我在最后一个条目的
;
和新条目的开头之间放置了一个空格,这导致 Visual Studio 忽略我的包含。
对于编写 CUDA 程序的人,您还需要在项目属性下的 CUDA C/C++ 选项卡下配置 其他包含目录。
在我的例子中,编译器无法找到“丢失”的文件,但可以从 Visual Studio 中的解决方案资源管理器中查看和编辑。 问题是该文件的文件路径太长(总共 233 个字符,接近 Windows 限制)。将我的整个项目移回几个子目录为我解决了这个问题。
严重性代码描述项目文件行抑制状态详细信息 错误(活动)E1696 无法打开源文件“cs50.h”Testc C:\Users S\source epos\测试