четверг, 21 октября 2010 г.
Qt 4.4.3, MinGW, Qt Creator и статическая линковка
Так вот. Линковка по умолчанию занимает 15гиг на винте и 5+ часов. А все почему? А потому, что там примеры и туториалы разные линкуются тоже. Понял я это на утро второго дня. Вообще в линковку через батнички и все такое я втыкал по ходу дела. Отвык уже от командной строки. Свой выбор я сделал еще в 1998 году и привык жмакать на всякие кнопочки на разных формочках. Вобщем, в конце концов я все-таки нашел и немного грубовато заставил линковать только Src папку и вспомогательные тулзы. Как - об этом ниже. Результат - линковка занимает меньше 2х часов на моей машинке.
Значит так. Путем экспериментов у меня получились следующие файлы:
mmake.bat:
Лежать он должен в папке %QTDIR%. В моем случае я сделал отдельную папку для сборки “static release” - C:\Programming\Qt\4.4.3-1\
Файл qtvars.bat:
Файл должен находиться в папке %QTDIR%\bin\.
Далее надо поправить строчку в файле qmake.conf:
QMAKE_LFLAGS_DLL = -static
Файл лежит в папке %QTDIR%\mkspecs\win32-g++\. Напоминаю, настройки для MinGW, для Студии будет в другом месте и другие строчки. Я настраивал, сохранил кучу текста/подсказок. Возможно со временем напишу инструкцию по линковке и подключению в Visual Studio, но позже. Мне Qt Creator понравился, для моих нужд - самое оно!
И, наконец, шаманим projects.pro файл:
Файл лежит в %QTDIR%. По сути, я просто закомментировал добавление в CONFIG папки с демками и примерами. У команды config есть ключ -fast, он тоже собирает только сорцы, без лишних вещей, но, по-моему, он еще не собирает папку tools и еще что-то.
Ну вот с настройками и все собственно. Запускаем cmd, в нем >mmake.bat и ждем пока все сконфигурируется и слинкуется.
Коротко про конфигурирование. Фонон нельзя собирать в статике, Веб-Кит тоже. Лицензия не позволяет, однако. Мне и не надо, собирать с ними статику не пробовал. Эта сборка для release. Пишу и дебажу в shared сборке, она у меня лежит в отдельной папке (4.4.3 для shared debug и 4.4.3-1 для static release). Есть проблема с загрузкой jpeg файлов. Посоветовали добавить Q_IMPORT_PLUGIN( qjpeg ) в программу и QTPLUGIN += qjpeg в файл проекта. Будем посмотреть.
Со сборкой вроде все. Буду редактировать, если что вспомню. Вообще как само-цель - сделать из блога мини-справку, возможно не так уж и мини, по Qt. Буду своими словами объяснять, что понял из книг и работы с библиотекой.
Взято: http://www.learnqt.com/category/how-to-learn-qt/qt-install/
Значит так. Путем экспериментов у меня получились следующие файлы:
mmake.bat:
call bin\qtvars.bat pause configure -static -release -no-exceptions -no-qt3support -qt-gif -qt-libpng -qt-libjpeg -no-phonon -no-webkit -no-phonon-backend -no-assistant-webkit -platform win32-g++ pause make src |
Файл qtvars.bat:
echo Setting up a Qt environment... set QTDIR=C:\Programming\Qt\4.4.3-1 echo -- QTDIR set to C:\Programming\Qt\4.4.3-1 set PATH=C:\Programming\Qt\4.4.3-1\bin;%PATH% echo -- Added C:\Programming\Qt\4.4.3-1\bin to PATH set MINGWDIR=C:\Programming\MinGW echo -- MINGWDIR set to C:\Programming\MinGW set PATH=C:\Programming\MinGW\bin;%PATH% echo -- Added C:\Programming\MinGW\bin to PATH set QMAKESPEC=win32-g++ echo -- QMAKESPEC set to "win32-g++" |
Далее надо поправить строчку в файле qmake.conf:
QMAKE_LFLAGS_DLL = -static
Файл лежит в папке %QTDIR%\mkspecs\win32-g++\. Напоминаю, настройки для MinGW, для Студии будет в другом месте и другие строчки. Я настраивал, сохранил кучу текста/подсказок. Возможно со временем напишу инструкцию по линковке и подключению в Visual Studio, но позже. Мне Qt Creator понравился, для моих нужд - самое оно!
И, наконец, шаманим projects.pro файл:
#process the projects for(PROJECT, $$list($$lower($$unique(QT_BUILD_PARTS)))) { isEqual(PROJECT, tools) { !cross_compile:SUBDIRS += tools else:SUBDIRS += tools/qtestlib } else:isEqual(PROJECT, examples) { # SUBDIRS += examples } else:isEqual(PROJECT, demos) { # SUBDIRS += demos } else:isEqual(PROJECT, libs) { include(src/src.pro) } else:isEqual(PROJECT, docs) { contains(QT_BUILD_PARTS, tools):include(doc/doc.pri) } else:isEqual(PROJECT, translations) { contains(QT_BUILD_PARTS, tools):include(translations/translations.pri) } else:isEqual(PROJECT, qmake) { # SUBDIRS += qmake } else { message(Unknown PROJECT: $$PROJECT) } } |
Ну вот с настройками и все собственно. Запускаем cmd, в нем >mmake.bat и ждем пока все сконфигурируется и слинкуется.
Коротко про конфигурирование. Фонон нельзя собирать в статике, Веб-Кит тоже. Лицензия не позволяет, однако. Мне и не надо, собирать с ними статику не пробовал. Эта сборка для release. Пишу и дебажу в shared сборке, она у меня лежит в отдельной папке (4.4.3 для shared debug и 4.4.3-1 для static release). Есть проблема с загрузкой jpeg файлов. Посоветовали добавить Q_IMPORT_PLUGIN( qjpeg ) в программу и QTPLUGIN += qjpeg в файл проекта. Будем посмотреть.
Со сборкой вроде все. Буду редактировать, если что вспомню. Вообще как само-цель - сделать из блога мини-справку, возможно не так уж и мини, по Qt. Буду своими словами объяснять, что понял из книг и работы с библиотекой.
Взято: http://www.learnqt.com/category/how-to-learn-qt/qt-install/
Подписаться на:
Сообщения (Atom)