| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt4] Как ускорить компиляцию проекта? |
| Автор: Programister0 26.12.2007, 17:04 | ||||
| я использую компилятор MinGW5.1 на Celeron D 2.8 под winXP(sp2) проект компилируется около 2-3 мин, в зависимости от внесенных изменений пробовал задать PRECOMPILED_HEADER в pro файле:
я так понял PRECOMPILED_HEADER может быть только один файл(т.к. создается тока одна папка allh.h.gch с *.o файлами) в allh.h поместил все используемые заголовки в проекте:
теперь везде(обычно в ui_*.h файлах) вместо этой кучи прописываю #include "allh.h" но какого-то заметного увеличения скорости компиляции нет, может я что-то не так сделал? |
| Автор: bsa 26.12.2007, 17:48 |
| В *.pro файл добавь: LANGUAGE = C++ CONFIG += precompile_header Нигде тот заголовок прописывать не надо (оставь все как есть) - он подключается сам. |
| Автор: archimed7592 26.12.2007, 19:54 |
| Programister0, а в RecsModel.h что находится? Ссылка по теме: http://forum.vingrad.ru/index.php?show_type=forum&showtopic=183642&view=all&hl=pch. |
| Автор: Programister0 26.12.2007, 22:05 | ||
| >Programister0, а в RecsModel.h что находится? там типа переопределение класса QSqlQueryModel для отображения данных на QTableView:
|
| Автор: archimed7592 26.12.2007, 22:27 |
| Programister0, покажи лог сборки. Рекомендую воздержаться от выкладывания скриншота. |
| Автор: Programister0 26.12.2007, 22:28 | ||
| вот http://forum.vingrad.ru/index.php?showtopic=183642&view=findpost&p=1326953 и написано, значит я все верно делал насчет того что все инклуды заменял на #include "allh.h" Исправил ссылку(archimed7592) Добавлено @ 22:36 >Programister0, покажи лог сборки. там абсолютно разные логи выходят, зависит от редактируемых модулей вот например frmMainWND.cpp подредактировал:
а вот если allh.h подредактировать то ваще засада! он почти во всех файлах подключается. |
| Автор: Programister0 26.12.2007, 22:59 | ||||
вот! пусть возрадуются поисковые роботы:
пока непонимаю что из этого можно взять
|
| Автор: archimed7592 26.12.2007, 23:15 | ||
| Programister0, у тебя успешно используется PCH. Можешь проверить это, замерив время сборки с ним и без него. Долгая сборка скорее всего обусловлена релизной сборкой(-O2). Выход: написать
|
| Автор: bsa 27.12.2007, 00:11 |
| Вообще-то что-то странное. У меня например в комманде компиляции есть "-include release/<project name>", а у него почему-то исходный h файл. |
| Автор: archimed7592 27.12.2007, 00:17 | ||
bsa,
Хотя... Programister0, попробуй скопировать папку .gch туда же, где у тебя лежит allh.h. |
| Автор: just_geek 9.1.2008, 10:49 | ||||
вместо всей этой кучи файлов можно писать только #include <QtGui> он уже включает в себя все остальное, у каждого модуля есть такой файл. Причем все модули, включают в себя <QtCore> Затем прекомпилированный заголовочный файл должен подключатся только в cpp файлах и первым. И вообще, http://gcc.gnu.org/onlinedocs/gcc/Precompiled-Headers.html |
| Автор: bsa 9.1.2008, 16:56 |
| just_geek, в header'ах не надо подключать QtGui. QtGui надо подключать в cpp файлах первой строчкой. |
| Автор: archimed7592 9.1.2008, 16:59 |
| В нашем случае(qmake) pch вообще подключать не нужно |
| Автор: just_geek 10.1.2008, 09:29 |
| в all.h, который является precompiled header'ом почему бы и не подключить QtGui.h? смысл тогда от ваших precompiled headers )) |
| Автор: archimed7592 10.1.2008, 10:15 |
Смысл как раз таки будет... |
| Автор: bsa 10.1.2008, 11:46 | ||
У меня, например, этот "all.h" в одном из проектов содержит:
|