| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > include в Makefile |
| Автор: georain 28.1.2008, 04:45 |
| Подскажите, как в Makefile (для GNU make) записывать цели в дерикториях, например есть: main.o: main.cpp headA.h headB.h g++ -c main.cpp Теперь я хочу чтобы headA.h и headB.h лежали в ./include/ Как мне написать? И можно ли чтобы заголовочные файлы автоматически в ./include искались? Извините не нашёл нигде. |
| Автор: georain 28.1.2008, 05:41 |
| У меня тут ещё вопрос возник, а что если у меня заголовочный файл сам зависит от другого заголовочного файла (headC.h)? |
| Автор: archimed7592 28.1.2008, 08:53 |
| Разве make не умеет разруливать зависимость от заголовочных файлов сам? Если нет, то точно есть штуковина, делающая это автоматически(то ли g++ --bla-bla-bla ... , то ли сам make нужно с какими-то параметрами запустить). |
| Автор: georain 28.1.2008, 09:11 |
| Было бы очень хорошо, если так. Мне в принципе это и нужно. |
| Автор: archimed7592 28.1.2008, 12:20 |
| georain, у сейчас нет времени проверять, но сделать это очень просто. Что-то вроде Makefile'а a.o : a.cpp b.o : b.cpp p.exe : a.o b.o Создаёшь a.cpp, b.cpp, a.h, b.h, ab.h. В a.cpp инклудишь a.h и ab.h. В b.cpp - b.h и ab.h. Делаешь make p.exe. Изменяешь a.h - должен должна произойти перекомпиляция только a.o и p.exe. Изменяешь ab.h - должна произойти перекомпиляция обойх модулей. Если так, то make сам умеет разруливать зависимость от хидэров. |
| Автор: JackYF 28.1.2008, 12:28 | ||
нет, не умеет -MM, -M, -MF |
| Автор: georain 29.1.2008, 11:15 |
| А как подставлять с помощью include, или скриптом, или другим мэйкфайлом файлик, сгенеренный gcc? Или где литературу найти? Я раньше проект весь целиком компилил, когда кода ещё не много было, а сейчас уже заметно стало. |
| Автор: warmonger_ 29.1.2008, 11:17 |
http://www.gnu.org/software/make/manual/make.html |
| Автор: Mayk 29.1.2008, 17:36 | ||||
| Пример использвоания утилиты gccmakedep[не знаю где брал]. код до запуска make dep
код после make dep
|