Необходимо импортировать локальные функции.h

#c #linux #gcc #centos

#c #линукс #gcc #центос

Вопрос:

В среде Linux (CentOS7) у меня есть локальный foo/features.h , который необходимо импортировать в базовый main.cpp . Структура каталогов выглядит следующим образом

 ./workspace/main.cpp ./foo/features.h  

Я хотел бы импортировать файл с main.cpp помощью

 #include "features.h"  

(вместо указания относительного пути ../features.h ).

Если я просто выступлю с workspace/

 gcc main.cpp -o m.out -I../foo  

затем другие внутренние файлы, такие как /usr/include/stdio.h не удается импортировать /usr/include/features.h (из-за инструкции #include lt;features.hgt; в этом файле) и попытаться импортировать мой локальный foo/features.h .

Я вижу такое же поведение, если я устанавливаю CPATH вместо использования -I для gcc . Является ли моей единственной альтернативой переименованию моего features.h ?

Комментарии:

1. Вы могли бы использовать -I../ тогда #include "foo/features.h"

2. @AlanBirtles Большое тебе спасибо. Это сработало великолепно.

Ответ №1:

Чтобы включить файлы, созданные пользователем, вам необходимо поместить их между кавычками и указать путь, например :

 #include "../foo/features.h"  

" " предназначен для созданных пользователем

lt; gt; предназначен для общесистемных библиотек

Таким образом, вам не нужно перезаписывать путь с помощью -I