修复 GCC 的 #includes <>(代码::块)
Fixing #includes <> for GCC (Code::Blocks)
我正在处理一些为不同编译器/链接器编写的代码,其中包括这样的文件:
#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路径。这在项目中非常常见
相关文章:
- GCC对可能有效的代码抛出init list生存期警告
- GCC 和 Clang 代码性能的巨大差异
- GCC 能否优化具有相同主体的函数的代码大小?
- GCC 编译器是否应该对涉及 [[fallthrough]] 属性的格式错误的C++代码进行诊断?
- 如何使用 gcc 通过命令行限制C++代码的内存使用量?
- MSVC对这段代码很满意,但GCC并不那么热衷
- 为什么这段代码无法使用 gcc 4.8.5 编译,而使用 clang 编译正常
- 为什么以下代码在在线 ide(gcc 7.2.0) 上有效,但在 ubuntu 上出现错误?
- Boost tread 代码在 VC++ 下编译,但不在 GCC 下编译:如何获得更好的调试信息
- gcc 可以使用较旧的第三方库编译 C++17 代码吗?
- 如何使用 gcc 内联汇编器代码访问成员变量
- 初始化不可移动对象数组:为什么这样的代码无法在 GCC 上编译?
- 是否可以使用 GCC 编译具有特定编译器标志的代码文件的一部分?
- variadic模板代码中的GCC VS MSVC编译误差
- Clang vs GCC:挥发性访问的不同代码
- 为什么 GCC 6.3 在没有显式 C++11 支持的情况下编译此大括号初始化列表代码
- GCC 带内联汇编和 -Ofast 为内存操作数生成额外的代码
- 为什么以下代码不使用GCC编译,而是用Clang编译罚款
- 相同的代码在不同的 gcc 编译器中存在巨大的性能差异
- 非常量引用类型的无效初始化中出错.在Linux操作系统中使用c++代码.GCC编译器