Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [Qt4] Как ускорить компиляцию проекта?


Автор: Programister0 26.12.2007, 17:04
я использую компилятор MinGW5.1 на Celeron D 2.8 под winXP(sp2)
проект компилируется около 2-3 мин, в зависимости от внесенных изменений
пробовал задать PRECOMPILED_HEADER в pro файле:
Код

CONFIG += precompile_header
PRECOMPILED_HEADER = allh.h \
                     RecsModel.h \

HEADERS += allh.h \
           RecsModel.h \
           ...

я так понял PRECOMPILED_HEADER может быть только один файл(т.к. создается тока одна папка allh.h.gch с *.o файлами)
в allh.h поместил все используемые заголовки в проекте:
Код

#ifndef __ALLH_H__
#define __ALLH_H__

#include <QtGui>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QComboBox>
#include <QtGui/QDateEdit>
#include <QtGui/QDialog>
#include <QtGui/QGridLayout>
#include <QtGui/QGroupBox>
#include <QtGui/QHBoxLayout>
#include <QtGui/QLabel>
#include <QtGui/QLineEdit>
#include <QtGui/QListWidget>
#include <QtGui/QMainWindow>
#include <QtGui/QMenu>
#include <QtGui/QMenuBar>
#include <QtGui/QPushButton>
#include <QtGui/QSpacerItem>
#include <QtGui/QSpinBox>
#include <QtGui/QStackedWidget>
#include <QtGui/QStatusBar>
#include <QtGui/QTableView>
#include <QtGui/QTextEdit>
#include <QtGui/QVBoxLayout>
#include <QtGui/QWidget>

#endif // __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:
Код

#include "allh.h"

class RecsModel : 
      public QSqlQueryModel 
{
    Q_OBJECT
  public:
    RecsModel(QObject *parent = 0);
    QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
 
  private:
    void refresh();    
};

Автор: 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 подредактировал:
Код

*** qmake ***
*** make ***
mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `C:/work_/bd_fb11'
g++ -c -include release\allh.h -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -o release\frmMainWND.o frmMainWND.cpp
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -mthreads -Wl -Wl,-subsystem,windows -o "release\my_bd.exe" object_script.my_bd.Release  -L"c:\qtprog\qt\lib" -lmingw32 -lqtmain release\res_res.o -lQtSql4 -lQtGui4 -lQtCore4
mingw32-make[1]: Leaving directory `C:/work_/bd_fb11'
Done building. Press F4 to go to any errors.

а вот если allh.h подредактировать то ваще засада! 
он почти во всех файлах подключается.

Автор: archimed7592 26.12.2007, 22:49
Цитата(Programister0 @  26.12.2007,  22:28 Найти цитируемый пост)
вот тут и написано,

Ты, наверное об этом:
Цитата(archimed7592 @  24.11.2007,  23:54 Найти цитируемый пост)
. include "PCH.hpp" должно идти первой строчкой(в идеале, ДО первого C/C++ token'а).



Видишь ли, когда ты собираешь проект qmake'ом, и используешь PCH, то qmake автоматом подставляет такие параметры компилятора, что первой строчкой и будет all.h (-include release\allh.h)


Цитата(Programister0 @  26.12.2007,  22:28 Найти цитируемый пост)
там абсолютно разные логи выходят, зависит от редактируемых модулей
вот например frmMainWND.cpp подредактировал:

Удали все бинарники(.o, .gch - т.е. всю папку release) и сделай ещё раз.


Кстати, сразу обращу твоё внимание на то, что ещё там написано:
Цитата(archimed7592 @  24.11.2007,  23:54 Найти цитируемый пост)
2. Может быть только один PCH.

А у тебя их два - потенциальная проблема(правда, по предоставленному логу такой проблемы не наблюдается).

Автор: Programister0 26.12.2007, 22:59
вот! пусть возрадуются поисковые роботы:
Код

C:\work_\bd_fb11>C:\Qtprog\qt\bin\qmake
C:\work_\bd_fb11>C:\Qtprog\mingw\bin\mingw32-make.exe
C:/Qtprog/mingw/bin/mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory `C:/work_/bd_fb11'
g++ -x c++-header -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql"-I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release"-I"." -I"..\..\qtprog\qt\mkspecs\default" -o release\allh.h.gch\c++ allh.h
g++ -c -include release\allh.h -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB-DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -o release\main.o main.cpp
g++ -c -include release\allh.h -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB-DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -o release\RecsModel.o RecsModel.cpp
g++ -c -include release\allh.h -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB-DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -o release\frmLogin.o frmLogin.cpp
g++ -c -include release\allh.h -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB-DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -o release\frmMainWND.o frmMainWND.cpp
g++ -c -include release\allh.h -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB-DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -o release\frmDisk.o frmDisk.cpp
g++ -c -include release\allh.h -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -o release\frmRec.o frmRec.cpp

g++ -c -include release\allh.h -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -o release\frmRecs.o frmRecs.cpp
g++ -c -include release\allh.h -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -o release\frmRecTypeGenre.o frmRecTypeGenre.cpp
g++ -c -include release\allh.h -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -o release\myQTableView.o myQTableView.cppc:\qtprog\qt\bin\rcc.exe -name res res.qrc -o release\qrc_res.cpp
g++ -c -include release\allh.h -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -o release\qrc_res.o release\qrc_res.cppC:/qtprog/qt/bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -D__GNUC__ -DWIN32 myQTableView.h -o release\moc_myQTableView.cpp
g++ -c -include release\allh.h -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -o release\moc_myQTableView.o release\moc_myQTableView.cppC:/qtprog/qt/bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -D__GNUC__ -DWIN32 RecsModel.h -o release\moc_RecsModel.cpp
g++ -c -include release\allh.h -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -o release\moc_RecsModel.o release\moc_RecsModel.cppC:/qtprog/qt/bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -D__GNUC__ -DWIN32 frmLogin.h -o release\moc_frmLogin.cpp
g++ -c -include release\allh.h -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -o release\moc_frmLogin.o release\moc_frmLogin.cppC:/qtprog/qt/bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -D__GNUC__ -DWIN32 frmMainWND.h -o release\moc_frmMainWND.cpp
g++ -c -include release\allh.h -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -o release\moc_frmMainWND.orelease\moc_frmMainWND.cppC:/qtprog/qt/bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -D__GNUC__ -DWIN32 frmDisk.h -o release\moc_frmDisk.cpp
g++ -c -include release\allh.h -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -o release\moc_frmDisk.o release\moc_frmDisk.cppC:/qtprog/qt/bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -D__GNUC__ -DWIN32 frmRec.h -o release\moc_frmRec.cpp
g++ -c -include release\allh.h -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -o release\moc_frmRec.o release\moc_frmRec.cppC:/qtprog/qt/bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -D__GNUC__ -DWIN32 frmRecs.h -o release\moc_frmRecs.cpp
g++ -c -include release\allh.h -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -o release\moc_frmRecs.o release\moc_frmRecs.cppC:/qtprog/qt/bin\moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -D__GNUC__ -DWIN32 frmRecTypeGenre.h -o release\moc_frmRecTypeGenre.cpp
g++ -c -include release\allh.h -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_THREAD_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_SQL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtCore" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtGui" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include\QtSql" -I"..\..\qtprog\qt\include" -I"." -I"c:\qtprog\qt\include\ActiveQt" -I"release" -I"." -I"..\..\qtprog\qt\mkspecs\default" -o release\moc_frmRecTypeGenre.o release\moc_frmRecTypeGenre.cpp
windres -i res.rc -o release\res_res.o --include-dir=.
res.rc:1: unrecognized escape sequence
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel
oc -Wl,-s -mthreads -Wl -Wl,-subsystem,windows -o "release\my_bd.exe" object_scr
ipt.my_bd.Release  -L"c:\qtprog\qt\lib" -lmingw32 -lqtmain release\res_res.o -lQ
tSql4 -lQtGui4 -lQtCore4
mingw32-make[1]: Leaving directory `C:/work_/bd_fb11'

пока непонимаю что из этого можно взять


 ! 
archimed7592
Такие объёмные тексты, а особенно логи нужно обрамлять тэгами [CODE=nocolor][/CODE], а то могут возрадоваться модераторы.

Автор: archimed7592 26.12.2007, 23:15
Programister0, у тебя успешно используется PCH. Можешь проверить это, замерив время сборки с ним и без него.
Долгая сборка скорее всего обусловлена релизной сборкой(-O2). Выход: написать 
Код

CONFIG -= release
CONFIG += debug
 в .pro, но, для этого должны присутствовать собранные отладочные версии Qt'шных библиотек(QtCore4d, QtGui4d и т.д.).

Автор: bsa 27.12.2007, 00:11
Вообще-то что-то странное. У меня например в комманде компиляции есть "-include release/<project name>", а у него почему-то исходный h файл.

Автор: archimed7592 27.12.2007, 00:17
bsa, 
Цитата
-I"release"
так что всё ок(в release должна быть папка allh.h.gch в которой будет файлик c++. Для gcc этого должно быть достаточно.

Хотя... Programister0, попробуй скопировать папку .gch туда же, где у тебя лежит allh.h.

Автор: just_geek 9.1.2008, 10:49
Цитата(Programister0 @ 26.12.2007,  17:04)
Код

#ifndef __ALLH_H__
#define __ALLH_H__

#include <QtGui>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QComboBox>
#include <QtGui/QDateEdit>
#include <QtGui/QDialog>
#include <QtGui/QGridLayout>
#include <QtGui/QGroupBox>
#include <QtGui/QHBoxLayout>
#include <QtGui/QLabel>
#include <QtGui/QLineEdit>
#include <QtGui/QListWidget>
#include <QtGui/QMainWindow>
#include <QtGui/QMenu>
#include <QtGui/QMenuBar>
#include <QtGui/QPushButton>
#include <QtGui/QSpacerItem>
#include <QtGui/QSpinBox>
#include <QtGui/QStackedWidget>
#include <QtGui/QStatusBar>
#include <QtGui/QTableView>
#include <QtGui/QTextEdit>
#include <QtGui/QVBoxLayout>
#include <QtGui/QWidget>

#endif // __ALLH_H__

вместо всей этой кучи файлов можно писать только #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 вообще подключать не нужно smile.

Автор: just_geek 10.1.2008, 09:29
в all.h, который является precompiled header'ом почему бы и не подключить QtGui.h? смысл тогда от ваших precompiled headers ))

Автор: archimed7592 10.1.2008, 10:15
Цитата(just_geek @  10.1.2008,  09:29 Найти цитируемый пост)
мысл тогда от ваших precompiled headers )) 

Смысл как раз таки будет...

Автор: bsa 10.1.2008, 11:46
У меня, например, этот "all.h" в одном из проектов содержит:
Код
#if defined __cplusplus

# include <QtGui>
# include <QApplication>

# include <algorithm>
# include <string>
# include <vector>
# include <list>
# include <set>
# include <map>

# include <iostream>
# include <iomanip>
# include <fstream>
# include <sstream>

# include <boost/spirit.hpp>
# include <boost/program_options.hpp>
# include <boost/thread.hpp>
# include <boost/utility.hpp>
# include <boost/signal.hpp>
# include <boost/format.hpp>
# include <boost/smart_ptr.hpp>
# include <boost/tuple/tuple.hpp>
# include <boost/lexical_cast.hpp>

#endif  //__cplusplus

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)