|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Anton Kovalenko 2:5020/400 22 Jan 2002 01:44:37 To : Alexey Panin Subject : Re: Пpогpаммиpование -------------------------------------------------------------------------------- Alexey Panin <Alexey.Panin@p30.f1045.n5030.z2.fidonet.org> wrote: AP> Hy это как сказать. Мейкфайл-то он не генеpит. Hу вот. Зачем тебе генерить мейкфайл? Или ты считаешь, что туда надо прописывать каждый файл в твоем проекте? Вот тебе шаблон: - --- #!/usr/bin/make -f SOURCES := $(wildcard *.c) OBJECTS = $(SOURCES:.c=.o) PROJNAME = $(notdir $(PWD)) BINARY= $(PROJNAME) $(BINARY): $(OBJECTS) $(CC) $(LDFLAGS) -o $@ $(OBJECTS) # а здеся мы генерим зависимости от заголовков include $(SOURCES:.c=.d) %.d: %.c gcc -MM -MG $< \ | sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \ [ -s $@ ] || rm -f $@ clean: rm -f *.d *.o .PHONY: clean # дальше было много интересного, но уже лично для меня: # автогенерация заголовков, документации и т.д. - --- Что же мы видим, товарищи, на примере этой модели? А видим мы Makefile, который можно взять и положить в любой каталог со свалкой исходников. Имя бинарника будет совпадать с именем каталога такого "проекта". Дополнительные библиотеки и каталоги для include можешь вписать в начало файла ( LDFLAGS= -lлиба -lеще CFLAGS= -Iкаталог -Iеще ). Этим, собственно, "подстройка" под новый проект на первых порах и ограничится. Теперь вопрос: что тут генерить? То есть среда разработки должна догадаться, что какая-то либа или .h-ка лежат в /home/vasya/test/libs/new/(libs|include)? Покажи мне такую среду, и я откушу себе голову. А все остальное хотя бы вышеприведенный Makefile (мое наколенное творчество эпохи раннего rtfm'а) "подхватит" сам. Если ты собираешься писать что-нибудь сложнее того, для чего такого "мейкфайла" хватает, тогда все равно придется rtfm: info make, info autoconf, info libtool. Hу и, конечно, научиться программировать. И, когда у тебя make poslat_nachalniku_ishodnik будет делать то, что отражено в имени target'а, заодно решится проблема, чем лучше работать с файлами: с файлами лучше _вообще не работать_, на это есть система. А если приходится гонять файлики вручную, без разницы, чем ты это делаешь: mc или cp, mv, rm... Хочется работать по-старинке - возьми какую-нибудь ide типа anjuta, vide или (censored) kdevelop, и генери себе makefile сколько угодно. Только не пытайся потом доказывать, что это, типа, удобнее - над тобой смеяться будут... VB>> делать отладкy в пpям в исходнике )пpи сильном желании) можно делать. AP> А отладчик, значит gdb? Это что же, для того чтоб бpейкпойнт или вотч AP> поставить я должен запyстить gdb и долго и мyчительно набиpать команды? Hу возьми ddd, он весь из себя такой графический, визуальный... Использует gdb, кстати. AP> И в добавок он ещё и по-pyсски не понимает. :-[ ] Отладчик?!?! Что ты ему по-русски хотел объяснить? "Брякнуться здесь, елы-палы"? -- Удачи! Антон Коваленко /* http://softlenin.chat.ru */. --- ifmail v.2.15dev5 * Origin: A poorly-installed InterNetNews site (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/8818b5d305ef.html, оценка из 5, голосов 10
|