LINUX.ORG.RU

Простой мейкфайл

 , ,


0

1

Беру пример отсюда: http://www.opennet.ru/docs/RUS/gnumake/#Multi-dirs

Совсем слегка переделываю так, что у меня получается:

source_dirs := . Editor TextLine

search_wildcards := $(addsuffix /*.c,$(source_dirs)) 

main: $(notdir $(patsubst %.c,%.o,$(wildcard $(search_wildcards))))
	gcc $^ -o $@ 

VPATH := $(source_dirs)

%.o: %.cpp
	gcc -c -MD $(addprefix -I,$(source_dirs)) $<

include $(wildcard *.d) 
Захожу в папку, где лежат main.c, main.h, папка Editor и TextLine (с соответствующими файлами), и makefile, пишу в консоли make, а на выходе:
cc    -c -o main.o main.c
In file included from main.c:1:0:
main.h:1:20: fatal error: Editor.h: No such file or directory
compilation terminated.
make: *** [main.o] Error 1

Почему так?

Ответ на: комментарий от Eddy_Em

ну я невнимательный, час уже парюсь. спасибо

ArtMenza
() автор топика
Ответ на: комментарий от qulinxao

Нет системы сборки кроме make и GNU/Make пророк его! :)

Harald ★★★★★
()
Ответ на: комментарий от flareguner

Я не сравнивал, я лишь поинтересовался, что товарищ qulinxao считает «нужным» и вбросил несколько вариантов.

Lilly
()
Ответ на: комментарий от Dron

«просто» полезно помнить когда и почему появился автосборщик в частности make

в некотором смысле make это специализированая прологтулза.

на sh (который в тот 75-77гг) был не так хорош как (ba)sh скриптом собирать было не очень удобно и оказалось проще реализовать простенький интерпретатор целей.

ну и да как выше отметили у mk нет того так и не убраной фичи как обязательные табы в нужном месте.

сейчас make полезен но те как вездесущь как когда его предложили.

qulinxao ★★☆
()
Ответ на: комментарий от Lilly

прозрачное для пользователя_прикла_программиста отоброжение его сырцов в работающий(исполнимый и проходящий тесты) код

тот же tcc как «jit» т.е при должной дисциплине с препроцессором можно получить то же самое что есть в golang сборку в 3 секунды = в этом случае make ...

qulinxao ★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.