![]() |
|
Модераторы: xvr |
![]()
|
|
| georain |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 28.11.2006 Где: Санкт-Петербург Репутация: нет Всего: нет |
Подскажите, как в Makefile (для GNU make) записывать цели в дерикториях,
например есть: main.o: main.cpp headA.h headB.h g++ -c main.cpp Теперь я хочу чтобы headA.h и headB.h лежали в ./include/ Как мне написать? И можно ли чтобы заголовочные файлы автоматически в ./include искались? Извините не нашёл нигде. |
|||
|
||||
| georain |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 28.11.2006 Где: Санкт-Петербург Репутация: нет Всего: нет |
У меня тут ещё вопрос возник, а что если у меня заголовочный файл сам зависит от другого заголовочного файла (headC.h)?
Это сообщение отредактировал(а) georain - 28.1.2008, 05:42 |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 3 Всего: 93 |
Разве make не умеет разруливать зависимость от заголовочных файлов сам? Если нет, то точно есть штуковина, делающая это автоматически(то ли g++ --bla-bla-bla ... , то ли сам make нужно с какими-то параметрами запустить).
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| georain |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 28.11.2006 Где: Санкт-Петербург Репутация: нет Всего: нет |
Было бы очень хорошо, если так.
Мне в принципе это и нужно. Это сообщение отредактировал(а) georain - 28.1.2008, 09:12 |
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 5 Всего: 134 |
есть даже несколько штуковин. во-первых да, сам gcc [не помню правда параметры, -MQ что ли?], во-вторых есть такие штуки как makedep или makedepend. правда не знаю делают ли они работу сами, либо используют gcc. rtfm тогда. гсс это точно делать умеет. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 3 Всего: 93 |
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 сам умеет разруливать зависимость от хидэров. -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 3 Всего: 162 |
||||
|
||||
| georain |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 28.11.2006 Где: Санкт-Петербург Репутация: нет Всего: нет |
А как подставлять с помощью include, или скриптом, или другим мэйкфайлом файлик, сгенеренный gcc?
Или где литературу найти? Я раньше проект весь целиком компилил, когда кода ещё не много было, а сейчас уже заметно стало. |
|||
|
||||
| warmonger_ |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 7.7.2007 Где: г. Киев Репутация: 1 Всего: 3 |
--------------------
Make everything as simple as possible, but not simpler.Albert Einstein |
|||
|
||||
| Mayk |
|
||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 5 Всего: 134 |
Пример использвоания утилиты gccmakedep[не знаю где брал].
код до запуска make dep
код после make dep
-------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||
|
|||||
![]()
|
| Правила форума "С/С++: Программирование под Unix/Linux" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |