Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Система компиляции 
:(
    Опции темы
tofreesky
Дата 7.8.2011, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 9.6.2010

Репутация: нет
Всего: нет



Пытался разобратся с make, так и не вышло, решил писать свою систему сборки, т.е. что я хочу сделать:

1) Система сборки парсит конфиг файл, похожий на make формат
2) Не измененные файлы (с зависимостями) не перекомпилируются
3) Проверка зависимостей и перекомпиляция измененных файлов
4) Сборка всего приложения
5) В конфиг файле пишется MD5 файла, для дальнейшей проверки на изменение исходника.


А вопрос в следующем, ведь наверняка такое можно сделать стороними утилитами? Или лучше писать свою. 

Все это нужно для увеличения скорости сборки.
PM MAIL   Вверх
boostcoder
Дата 7.8.2011, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(tofreesky @  7.8.2011,  16:35 Найти цитируемый пост)
наверняка такое можно сделать стороними утилитами?

конечно smile - make, cmake.
PM WWW   Вверх
tofreesky
Дата 7.8.2011, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 9.6.2010

Репутация: нет
Всего: нет



Как собрать через make простое приложение *.cpp и *.h зависимостью, что бы он не пересобирал, как он проверит что файл изменился?

Windows MinGW
PM MAIL   Вверх
boostcoder
Дата 7.8.2011, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



легко!
гуглить GNU make dependencies.
как бы на то make и создавался. иначе какой в нем смысл, если он тупо пересобирает все smile

Добавлено через 7 минут и 25 секунд
вот конкретно твой случай: http://scottmcpeak.com/autodepend/autodepend.html
гугл, вообще-то полезная штука ;)
нет, конечно, ради опыта запрограммировать аналог make можно...а нужно ли?
PM WWW   Вверх
tofreesky
Дата 7.8.2011, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 9.6.2010

Репутация: нет
Всего: нет



Мне легче свой написать, чем тратить время на изучения как работает make. 

Код

test: test.o 
    F:\MinGW\bin\g++.exe test.o -o test.exe
    
test.o: test.cpp
    F:\MinGW\bin\g++.exe -c -o test.o test.cpp

clean:
    rm test test.o


вывод



Код

C:\Documents and Settings\root>C:\MinGW\bin\mingw32-make.exe F:\MinGW\test\makef
ile test
mingw32-make: Nothing to be done for `F:\MinGW\test\makefile'.
mingw32-make: *** No rule to make target `test'.  Stop.

C:\Documents and Settings\root>


PM MAIL   Вверх
boostcoder
Дата 7.8.2011, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(tofreesky @  7.8.2011,  17:37 Найти цитируемый пост)
легче свой написать

удачи smile

Добавлено через 45 секунд
как напишешь, выложи плиз.
я подписался на тему.
очень жду.
PM WWW   Вверх
voral
Дата 8.8.2011, 07:50 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 158
Регистрация: 16.3.2008
Где: Иваново

Репутация: нет
Всего: нет



Цитата(tofreesky @  7.8.2011,  17:37 Найти цитируемый пост)

вывод

Так вы не праильно запускате 
Код

C:\Documents and Settings\root>C:\MinGW\bin\mingw32-make.exe -С F:\MinGW\test\ test

PM MAIL WWW   Вверх
tofreesky
Дата 8.8.2011, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 9.6.2010

Репутация: нет
Всего: нет



Код

Так вы не праильно запускате 


Вчера догадался запискать так как вы написали, все работает, разве что make пересобирает все файлы постоянно, для чего, если они не требуют перекомпиляции?

Код

bmpfile.o: src\bmpfile.cpp
    F:\MinGW\bin\g++.exe -c -fverbose-asm -Os -o src\obj\bmpfile.o src\bmpfile.cpp

PM MAIL   Вверх
boostcoder
Дата 8.8.2011, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(tofreesky @  8.8.2011,  12:58 Найти цитируемый пост)
для чего, если они не требуют перекомпиляции?

я вам уже ответил.
PM WWW   Вверх
xvr
Дата 8.8.2011, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223



Цитата(tofreesky @  8.8.2011,  12:58 Найти цитируемый пост)
разве что make пересобирает все файлы постоянно

Так написали  smile 
Надо так:
Код

src\obj\bmpfile.o: src\bmpfile.cpp
    F:\MinGW\bin\g++.exe -c -fverbose-asm -Os -o src\obj\bmpfile.o src\bmpfile.cpp


PM MAIL   Вверх
boostcoder
Дата 8.8.2011, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



tofreesky, в общем, вы просто не умеете его(make) готовить. и он в этом не виноват.
PM WWW   Вверх
tofreesky
Дата 8.8.2011, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 9.6.2010

Репутация: нет
Всего: нет



как еще депенденси прикрепить которые mingw генерирует?
PM MAIL   Вверх
boostcoder
Дата 8.8.2011, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



я тебе прямую ссылку дал. читать западло?
PM WWW   Вверх
tofreesky
Дата 8.8.2011, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 152
Регистрация: 9.6.2010

Репутация: нет
Всего: нет



C английским плохо
PM MAIL   Вверх
boostcoder
Дата 8.8.2011, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



сочувствую
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1030 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.