gcc не может найти включенный заголовок - PullRequest
3 голосов
/ 26 января 2010

Я использую заголовок с именем 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: нет такого файла или каталога
убунту @ EeePC: ~ / Разработка / Тест $

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

Ответы [ 4 ]

18 голосов
/ 26 января 2010

Использовать кавычки:

#include "colors.h"

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

2 голосов
/ 26 января 2010

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

1 голос
/ 01 апреля 2013

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

0 голосов
/ 26 января 2010
#include "colors.h"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...