2015-01-29 2 views
0

Мой проект организован в папкезаголовка путь к файлу в файле C

myproj/ 
     src/ 
      main.c 
     inc/ 
      main.h 
     makefile 

У меня в C файлы

#include <main.h> 

и в моей Makefile я имею

INCLUDE = /inc 
SOURCE = src/ 

compile: 
    $(CC) -I$(INCLUDE) $(CFLAGS) $(SRCPATH)main.c -o myapp $(LIBS) 

myapp: 
    $(CC) -I$(INCLUDE) $(FLG_LIB) -o myapp main.c 

но я получаю фатальную ошибку: нет такого файла или каталога.

Я также пробовал «main.h», но бесполезно.

+2

'#include" ../ inc/main.h "'? – Gopi

+1

Возможно, это глупо, но, возможно, несоответствие между «ИСТОЧНИКОМ» и «SRCPATH»? –

+0

Чтобы понять разницу между '#include <...>' и '#include" ... "', вы можете посмотреть [здесь] (http://stackoverflow.com/a/21594/4384927) – Chostakovitch

ответ

3

попробовать еще раз, изменив 'INCLUDE=/inc' к 'INCLUDE=inc/' (заметьте: обрезать пустой символ ' ' до и после '=').

BTW, используя #include "" вместо #include <> в вашем случае, поскольку первое использование позволяет компилятору найти файл заголовка, во-первых из локального пути, то из системного пути, последний один (с <>) является противоположностью.

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