gcc не может найти включенный заголовок

Я использую заголовок 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: error: colors.h: Нет такого файл или каталог
ubuntu @ eeepc: ~ / Development / Test $

Что я могу сделать, чтобы решить эту проблему?


person Community    schedule 26.01.2010    source источник
comment
Обман stackoverflow.com/questions/973146/ среди многих других.   -  person    schedule 26.01.2010


Ответы (3)


Используйте цитаты:

#include "colors.h"

Использование кавычек будет сначала искать в том же каталоге, а затем в указанных путях включения. Использование угловых скобок будет смотреться только во включаемых путях.

person interjay    schedule 26.01.2010

Угловые скобки используются для поиска заголовка в неявных путях заголовка. Заголовки в явных путях, включая текущий каталог, нуждаются в кавычках.

person Ignacio Vazquez-Abrams    schedule 26.01.2010

#include <colors.h> указывает GCC искать, где он находит стандартные заголовки C, возможно, не там, где у вас есть заголовок. #include "colors.h указывает GCC искать заголовки в текущем рабочем каталоге

person Community    schedule 01.04.2013
comment
Итак, вы хотите использовать последнее в этом случае - person built1n; 02.04.2013