2012-03-26 1 views
0

Я программирую для большого проекта, поэтому я сотрудничаю с другими. Для того, чтобы каталог легко управлять, мой каталог, как показано ниже:как включить файлы .h в файлы .c если я использую makefile

project: 
--include (header files from others supplied for me) 
--lib (libraries from others supplied for me) 
--L3_CVS (this folder include all my files) 
    -- Makefile 
    -- sourceFile (all my source files here) 
     -- include_private(all header files used only by myself) 
     -- appl (all my C files here) 

, если я хочу, чтобы включить файл .h в моем файле .c, нужно ли мне писать в .c файле «#include» .. /include-private/XX.h "" ??? что делать, если я просто пишу в .c "включить" XX.h ""?

Потому что мне нужно использовать файлы .h в папке «include», которую другие поставляют для меня, как я могу писать в своих файлах .c, чтобы включить эти файлы .h?

мой Makefile ниже:

how to include .h document in makefile

спасибо за вашу помощь !!!

ответ

1

Зависит от компилятора, но, как правило, вы хотите добавить следующую строку:

CFLAGS += -I../include-private 

CFLAGS является переменной, которая делает использование, чтобы добавить параметры командной строки для компилятора C («C» флаги). Для C++ вам нужно использовать CXXFLAGS. Если я с помощью C и C++ в том же проекте, я обычно создать переменную с именем INCLUDES, и использовать его как это:

INCLUDES = -I../include-private 

CFLAGS += $(INCLUDES) 
CXXFLAGS += $(INCLUDES) 
+0

, как вы имеете в виду, мне не нужно запись #include».. /include-private/XX.h "в моем .c файле и просто напишите INCLUDES = -I ../ include-private CFLAGS + = $ (INCLUDES) в makefile ????? – city

+0

@city: Нет, вам все равно придется включать файлы заголовков в файл c. «CFLAGS» просто сообщает компилятору, где найти эти файлы заголовков. –

+0

@city Если вы используете этот флаг, то в источнике вам просто нужно включить «XX.h», вам больше не нужен путь. – blueshift

Смежные вопросы