Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Проблемы со статической сборкой проекта |
Автор: RobinHoodPHD 17.7.2010, 14:21 | ||
Доброго времени суток, уважаемые форумчане! Хочу статически собрать проект, чтобы не таскать за прогой dll-ки. Использую Qt Creator 2.0 и Qt 4.6.3. Чтобы настроить Qt ввожу в консоли команду: configure.exe -static -release -no-qt3support -no-exceptions -platform win32-g++ Все как описано в мане, однако configure мне выдает в конце: ...много текста... Creating qmake... execute: File or path is not found (mingw32-make) execute: File or path is not found (mingw32-make) Cleaning qmake failed, return code -1 Вот наш полный диалог с утилитой configure:
Как бы мне от этого избавиться? Может нужно добавить какие-то переменные среды? В данный момент для Qt я добавил: QTDIR , MINGWDIR , MAKESPEC и в Path добавил ;%QTDIR%\bin;%MINGWDIR%\bin; |
Автор: djamshud 19.7.2010, 11:19 |
>в Path добавил ;%QTDIR%\bin;%MINGWDIR%\bin; Судя по логу в PATH-е нет пути до mingw, и, как я понимаю, именно его конфигуратору и не удается найти. Добавьте его явным образом C:\bin\mingw\ или где там он у вас установлен. ЗЫ. Если за последнее время ничего не изменилось, бесплатную версию Qt запрещается линковать статически со своим софтом. |
Автор: RobinHoodPHD 19.7.2010, 21:01 |
djamshud, bsa, спасибо, вроде собралось. Теперь проблема со сборкой проекта в самом Qt Creator'е: Выдает две загадочные ошибки: (скриншот окна прикреплен) :: error: cannot find -lQtGuid :: error: collect2: ld returned 1 exit status Сначала думал что это из за того, что я плагины не подключил (т.к. в приложении использовал jpeg и ico изображения). Но не собирается даже простейшее графическое приложение с пустой формой... Подскажите пожалуйста, чем вызвано сие непотребство? |
Автор: RobinHoodPHD 19.7.2010, 21:21 |
Покурив интернет пришел к выводу, что может быть еще полезно дополнительно сообщить, что Qt я пересобирал с параметром -release и в файл .pro проекта добавил строку CONFIG += static (хотя эта строка никакого эффекта и не дала...) Обе ошибки :: error: cannot find -lQtGuid :: error: collect2: ld returned 1 exit status выводятся в режиме сборки "Отладка" При сборке "Релиз" только :: error: collect2: ld returned 1 exit status В папке %QTDIR%/lib есть библиотеки: libQtGui.a, libQtGui4.a , libQtGuid4.a Добавлено через 9 минут и 3 секунды Кажется нашел ответ: Если вдруг после перекомпиляции Qt вы при сборке проекта получаете примерно такую ошибку: D:\Qt\mingw\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot find -lQtGuid collect2: ld returned 1 exit status значит что-то не докомпилировалось. Ещё такое бывает, если при перекомпиляции Qt в configure установить ключ "-release", а компилировать проект в debug, или наоборот. Бегу перекомпилировать....;) |
Автор: RobinHoodPHD 20.7.2010, 19:01 | ||
Нашел проблему - утилита mingw32-make завершается с ошибкой:
Может быть есть идеи насчет того, как это исправить? |
Автор: bsa 20.7.2010, 21:36 |
RobinHoodPHD, если ты Qt собрал с опцией -release, то и в настройках компилируемого проекта должен ставить release. По умолчанию стоит debug, вот и ругается. Думаю, нет никакого смысла делать статичную дебаговую версию - линкуется долго очень, да и объемы невпупительные. Поэтому, дебаговый профиль настрой на динамическую Qt, а релизный на статическую. |