错误:无法打开源文件“”

问题描述 投票:0回答:7

我正在运行 Visual Studio C++,我有一个头文件“GameEngine.h”,我试图让另一个文件看到它。

当我#include“GameEngine.h”时,它给出了无法打开源文件的错误。我不知道该怎么做。我已经这样做了一千次,但由于某种原因,现在不起作用了。

visual-studio visual-c++
7个回答
79
投票

您需要检查您的项目设置,在C++下,检查包含目录并确保它指向

GameEngine.h
所在的位置,另一个问题可能是
GameEngine.h
不在您的源文件文件夹或任何include 目录并驻留在与项目文件夹相关的不同文件夹中。例如,您有 2 个项目
ProjectA
ProjectB
,如果您将
GameEngine.h
包含在
ProjectA
中的某些源/头文件中,则要正确包含它,假设
ProjectB
位于同一父文件夹中,请执行此操作:

include "../ProjectB/GameEngine.h"

如果你有这样的结构:

根\项目A

根\ProjectB <- GameEngine.h actually lives here


2
投票

以防万一有人像我一样是新手,请仔细检查您的标头文件夹拼写是否正确。

例如:

<#include "Component/BoxComponent.h"

这会导致错误。相反,它需要是:

<#include "Components/BoxComponent.h"

0
投票

令我惊讶并令我惊讶的一件事是,在继承的项目中,它所引用的文件是在项目文件夹外部的相对路径上引用的,但仍然存在于项目文件夹中。

在解决方案资源管理器中,单击每个出现错误的文件,打开“属性”窗口(右键单击,“属性”),并确保“相对路径”只是文件名(例如

MyMissingFile.cpp
)(如果它在项目中)文件夹。就我而言,它设置为:
..\..\Some Other Folder\MyMissingFile.cpp


0
投票

这是谷歌搜索“无法打开源文件”时的最佳结果,所以我想我会分享我的问题,因为我已经包含了正确的路径。

我不确定其他 IDE 或编译器,但至少对于 Visual Studio,请确保包含目录列表中没有空格。我在最后一个条目的

;
和新条目的开头之间放置了一个空格,这导致 Visual Studio 忽略我的包含。


0
投票

对于编写 CUDA 程序的人,您还需要在项目属性下的 CUDA C/C++ 选项卡下配置 其他包含目录


0
投票

在我的例子中,编译器无法找到“丢失”的文件,但可以从 Visual Studio 中的解决方案资源管理器中查看和编辑。 问题是该文件的文件路径太长(总共 233 个字符,接近 Windows 限制)。将我的整个项目移回几个子目录为我解决了这个问题。


0
投票

严重性代码描述项目文件行抑制状态详细信息 错误(活动)E1696 无法打开源文件“cs50.h”Testc C:\Users S\source epos\测试

© www.soinside.com 2019 - 2024. All rights reserved.