Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 固定#包括<&燃气轮机;对于GCC(代码::块)_C++_C_Gcc_Codeblocks - Fatal编程技术网

C++ 固定#包括<&燃气轮机;对于GCC(代码::块)

C++ 固定#包括<&燃气轮机;对于GCC(代码::块),c++,c,gcc,codeblocks,C++,C,Gcc,Codeblocks,我正在使用为其他编译器/链接器编写的一些代码,其中包括以下文件: #include <Engine/Graphics/Sprite.h> #包括 从项目的任何地方 该项目在该路径(从项目的根目录)包含这样一个文件,但是当我构建时,我得到了“未找到文件”错误 我如何修复所有这些包含,而不必手动完成所有操作?也许您应该编写 #include "Engine/Graphics/Sprite.h" (请注意双引号而不是括号) 在#include指令中,括号用于指定要包含系统/库头文件,

我正在使用为其他编译器/链接器编写的一些代码,其中包括以下文件:

#include <Engine/Graphics/Sprite.h>
#包括
从项目的任何地方

该项目在该路径(从项目的根目录)包含这样一个文件,但是当我构建时,我得到了“未找到文件”错误


我如何修复所有这些包含,而不必手动完成所有操作?

也许您应该编写

#include "Engine/Graphics/Sprite.h"
(请注意双引号而不是括号)

#include
指令中,括号用于指定要包含系统/库头文件,该文件将在系统包含目录(例如/usr/include)中搜索,而双引号用于包含当前路径中的文件


如果使用此
#include
的文件位于包含
引擎/…
层次结构的目录中,则此功能应该可以工作。如果不是这样,您还应该使用
-I
指令将其指定给编译器作为一个附加的include目录。

请记住,通常使用
#include
指令来包含标准include目录中的文件。这些目录定义为环境变量或在编译器的命令行中。和
#包括“filename”
以包括来自当前目录或相对于当前目录的任何路径的头文件

不需要全部手动完成


你可以使用你最喜欢的编辑器的搜索和替换功能

我要复制Ben的评论,并说你应该在头文件所在的位置添加一个包含路径。这在一个项目中是很常见的

我不太确定我是否理解你的解释,你说的“从项目的根开始”是什么意思。但是

当您将#include指令与您的命令一起使用时,编译器将使用-I选项在包含的目录中查找文件

在代码块中,转到项目->构建选项->搜索目录->编译器

并将文件夹路径添加到包含“引擎”的文件夹中

你可以在这里找到更多信息


编辑:在尝试任何操作之前,请尝试使用
#include“path/somefile.h”
而不是
#include

将该路径添加到编译器中,使用
-I
您应该使用
-I path/to/top/of/build
进行构建,而不是使每个include都是相对的path@Ben这听起来像是我最容易做到的。如何在Code::Blocks中实现这一点是最好的方法?主要的问题是,手动完成并更改所有包含内容会非常繁琐。即使是Sprite.cpp也会以这种方式包含Sprite.h。
sed
可以帮助您,但在进行此类工作时,最好准备好备份副本:)