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

时间:2011-06-15 22:07:59

标签: c++ c gcc codeblocks

我正在使用为不同的编译器/链接器编写的一些代码,它包含这样的文件:

#include <Engine/Graphics/Sprite.h>

来自项目的任何地方。

项目在该路径中包含这样一个文件(来自项目的根目录),但是当我构建时,我发现找不到文件错误。

如何修复所有这些内容,而无需手动完成所有操作?

4 个答案:

答案 0 :(得分:10)

我不太确定我是否理解你的解释,你对“从项目的根源”的意思是什么。但是......好吧......

将#include指令与&lt;&gt;一起使用时您告诉编译器的是在-I选项包含的目录中查找该文件。

在代码块中转到Project-&gt; Build Options-&gt; Search Directories-&gt; Compiler

将文件夹路径添加到包含“Engine”的文件夹。

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

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

答案 1 :(得分:3)

可能你应该写

#include "Engine/Graphics/Sprite.h"

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

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

如果使用此#include的文件位于包含Engine/...层次结构的目录中,则此方法应该有效。如果不是这种情况,您还应该使用-I指令将其指定给编译器作为附加的包含目录。

答案 2 :(得分:1)

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

  

没有经过并手动完成所有操作?

您可以使用自己喜欢的编辑器的搜索和替换功能

答案 3 :(得分:1)

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