Управление путем поиска для включаемых файлов - PullRequest
3 голосов
/ 06 августа 2009

Моя среда разработки такова, что у меня есть some_header.h в /usr/include и в /another/directory. /another/directory содержит некоторые заголовочные файлы, которые мне нужно включить в мою программу, но я хочу использовать some_header.h из /usr/include. Когда я использую

 gcc ... -I/another/directory

gcc использует /another/directory/some_header.h. Если я использую

 gcc ... -I/usr/include -I/another/directory

gcc делает то же самое, потому что игнорирует /usr/include, поскольку он является частью стандартного пути поиска, но его ищут после поиска нестандартных каталогов, включенных в -I.

Есть идеи?

Ответы [ 3 ]

6 голосов
/ 06 августа 2009

Используйте переключатель -iquote :

Включите файлы, которые находятся в another / directory , используя кавычки:

#include "another_file.h"

Тогда используйте

gcc -iquote /another/include ...

чтобы добавить путь поиска для указанных включаемых файлов. Этот ключ добавит каталог, в котором ищутся включенные в кавычки файлы после текущего каталога и до -I и пути к системным включениям.

Включите другие включаемые файлы в квадратных скобках (т. Е. #include <header.h>).

Смотрите здесь для получения дополнительной информации: Где хранятся включаемые файлы - Ubuntu Linux, GCC

4 голосов
/ 06 августа 2009

Вы смотрели на -nostdinc?

В инструкции написано:

-nostdinc
Не ищите в стандартных системных каталогах файлы заголовков. Только каталоги, которые вы указали с опциями -I (и поиск в каталоге текущего файла, если необходимо).

Конечно, это означает, что вы должны будете указать все, что обычно идет по стандартному пути поиска, который вы делаете хотите ...

0 голосов
/ 06 августа 2009

Вы пытались сбросить системную переменную окружения пути INCLUDE?

...