gcc找不到一个包含的头文件。

3
我将使用一个名为colors.h的头文件来组织我的源代码。这个头文件像这样:
#define DEFAULT 0x07
#define BLACK 0
#define GRAY 7
#define BLUE 9
#define GREEN 10
#define CYAN 11
#define RED 12
#define MAGENTA 13
#define YELLOW 14

我将头文件放在与主源代码相同的目录中,命名为kernel.c,并像这样包含它:

#include <colors.h>

但是当我尝试编译时,出现了以下错误:

ubuntu@eeepc:~/Development/Test$ gcc -o kernel.o -c kernel.c -Wall -Wextra -nostdlib -nostartfiles -nodefaultlibs
kernel.c:1:20: 错误:colors.h:没有那个文件或目录
ubuntu@eeepc:~/Development/Test$

我该怎么做才能解决这个问题?


有很多其他的问题与 https://dev59.com/73NA5IYBdhLWcg3wZ9DU 重复了。请参考其他类似的问题。 - anon
4个回答

18

使用引号:

#include "colors.h"

使用引号将首先查找相同目录,然后在指定的包含路径中查找。 使用角括号只会在包含路径中查找。


2

尖括号用于在隐式头文件路径中查找头文件。显式路径中的头文件,包括当前目录,需要加引号。


1

#include <colors.h> 告诉GCC在标准C头文件目录中查找,可能与你的头文件所在位置不同。 #include "colors.h" 告诉GCC在当前工作目录中查找头文件。


所以在这种情况下,您想要使用后者。 - built1n

0
#include "colors.h"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接