修复 GCC 的 #includes <>(代码::块)

Fixing #includes <> for GCC (Code::Blocks)

本文关键字:代码 GCC gt lt 修复 #includes      更新时间:2023-10-16

我正在处理一些为不同编译器/链接器编写的代码,其中包括这样的文件:

#include <Engine/Graphics/Sprite.h>

来自项目中的任何地方。

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

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

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

将#include指令与<>一起使用时您要告诉编译器的是在带有-I选项的目录中查找文件。

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

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

你可以在这里找到更多信息http://msdn.microsoft.com/en-us/library/36k2cdd4(v=vs.71).aspx

编辑:在尝试任何操作之前,请尝试#include "path/somefile.h"而不是#include <pathsomefile.h>

也许您应该编写

#include "Engine/Graphics/Sprite.h"

(注意双引号而不是括号)。

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

如果使用此#include的文件位于包含Engine/...层次结构的目录中,则此操作应该有效。如果不是这样的话,您还应该使用-I指令将它指定给编译器作为一个额外的include目录。

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

而不需要手动完成所有操作?

您可以使用search&替换您喜爱的编辑器的功能

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