![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
SDLM |
![]()
Сообщение
#1
|
Студент ![]() Группа: Новичок Сообщений: 16 Регистрация: 19.4.2009 Пользователь №: 694 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
ОС WindowsXP SP3
Вот решил посмотреть что за зверь такой Qt, нашел обзорную статью http://voxel3d.strana.de/articles/mingwqtemacs.html скачал статическую сборку(qt-sdk-win-opensource-2009.03.exe), поставил. Но сразу же возникли проблемы... захожу в Qt Command Prompt, и пытаюсь скомпилить простейший проект. qmake -project // отработала сразу и нормально qmake // не хотела работать, выдавала следующее: Could not find mkspecs for your QMAKESPEC(win32-g++) after trying: C:/qt-greenhouse/Trolltech/Code_less_create_more/Trolltech/Code_less_cre ate_more/Troll/4.5.0/qt\mkspecs Error processing project file: D:/RAM/test3/test3.pro Проблема решилась добавлением в каталог ...Qt\2009.03\qt\bin файла qt.conf с содержанием: [Paths] Prefix = D:/Programss/Qt/2009.03/qt в идеале содержание должно быть: [Paths] Prefix = Documentation = doc Headers = include Libraries = lib Binaries = bin Plugins = plugins Data = . Translations = translations Settings = . Examples = . Demos = . Судя по офф описанию этого файла http://doc.trolltech.com/4.5/qt-conf.html ну хорошо, в итого команда qmake, отработала, а вот команда make нивкакую. Посмотрел на exe-шники пакета MinGW, решил попробовать запустить mingw32-make.exe, т.е. просто команду mingw32-make, проэкт собрался, Но exe-шник проэкта запускаться из под винды не хочет, только из под консоли, т.к. при запуске используются DLL библиотеки как Qt так и MinGW, а теперь первая группа вопросов: 1. что делать с командой make, ока вообще должна работать ? в чём проблема ? 2. команда mingw32-make нормально заменяет команду make или ...? 3. что необходимо сделать что бы на выходе получился exe-шник не требующий сторонних библиотек? (Где то видел рекомендацию в файле .pro дописать CONFIG += static, не помогло) Ок. Первый проект так или иначе скомпилировал, теперь заходим в Qt Creator, опять таки создаю весьма простенький проект, но при попытке скомпилировать получаю следующее: Running build steps for project first_step... Starting: D:/Programss/Qt/2009.03/qt/bin/qmake.exe D:/RAM/test4/first_step/first_step.pro -spec C:/qt-greenhouse/Trolltech/Code_less_create_more/Trolltech/Code_less_create_more/Troll/4.5.0/qt/mkspecs/win32-g++ -r Failure to read QMAKESPEC conf file c:/qt-greenhouse/Trolltech/Code_less_create_more/Trolltech/Code_less_create_more/Troll/4.5.0/qt/mkspecs/win32-g++\qmake.conf. Error processing project file: D:/RAM/test4/first_step/first_step.pro Exited with code 3. Error while building project first_step When executing build step 'QMake' пробовал искать решения данной проблемы, ничего не нашел ![]() пробовал сам пошарить по настройкам Creator`а вообще ничего похожего не нашел ![]() Ну что делать, решил применить самый тупой метод, банально создать требуемый каталог mkdir C:\qt-greenhouse\Trolltech\Code_less_create_more\Trolltech\Code_less_create_more\Troll\qt\mkspecs\win32-g++ и скопировать туда содержимое из каталога ...\Qt\2009.03\qt\mkspecs\win32-g++\ Проблема решилась, но всё же хотелось бы узнать есть ли цивильные пути её решения ?? P.S. Собственно после выполнения всего выше описанного возникает смутное ощущение ![]() |
|
|
SABROG |
![]()
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
Тролли опять наверно забыли допатчить пути:
команда make нивкакую Не должно быть в MinGW команды make. Когда ставишь пакет MSYS там идет проверка на файлик make в директории bin, и если его там нет, то пишется по английски типа "Проверяем существования файлика make: не найдено. Так держать!". Если собирать программы из под MSYS, то там используют совершенно разные make, для MSYS make.exe, дла CMD mingw32-make. Если насильно переименовать mingw32-make в make, то программы под MSYS могут отказаться собираться. Т.ч. используй всегда строчку "mingw32-make", если ты не в MSYS. Цитата что необходимо сделать что бы на выходе получился exe-шник не требующий сторонних библиотек? Искать решение в гугле. Много статей на эту тему написано. А потом пожинать плоды подводных камней с отсутствующей системой плагинов (кстати некоторые из них физически не могут быть слинкованы статически, а значить их использовать нельзя будет) и исключений, которые необходимы тому же QtConcurrent. Сообщение отредактировал SABROG - 29.6.2009, 8:46 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#3
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
1. что делать с командой make, ока вообще должна работать ? в чём проблема ? make - общее название программ такого рода.2. команда mingw32-make нормально заменяет команду make или ...? сделай батник: и положи его рядом с mingw32-make.exeДля нормальной работы (и компиляции и скомпилированных программ) нужно, чтобы в переменной окружения PATH были пути к бинарям компилятора и инструментов Qt. 3. что необходимо сделать что бы на выходе получился exe-шник не требующий сторонних библиотек? пересобрать библиотеку Qt стстаически. Я рекомендую не заморачиватся с этим.
|
|
|
SDLM |
![]()
Сообщение
#4
|
Студент ![]() Группа: Новичок Сообщений: 16 Регистрация: 19.4.2009 Пользователь №: 694 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Цитата что необходимо сделать что бы на выходе получился exe-шник не требующий сторонних библиотек? Искать решение в гугле. Много статей на эту тему написано. ... Ясно, будем ковырять... make - общее название программ такого рода. ясно, типо того и ожидал услышать Для нормальной работы (и компиляции и скомпилированных программ) нужно, чтобы в переменной окружения PATH были пути к бинарям компилятора и инструментов Qt. Да это то понятно, имелось ввиду что мне нужно скомпилировать прогу, пойти на другой комп, и там запустить её, и получается что для этого нужно в папке с exe-шником тащить еще стопку библиотек ![]() Цитата пересобрать библиотеку Qt стстаически. Я рекомендую не заморачиватся с этим. Эм ... ну в принципе направление развития ясно, но ... разве предскомпилированная(собранная Тролями и распространяемая в виде .exe файла) Qt не называется статической ? а динамическая(распространяемая исходными кодами) это соответственно когда Qt компилируется на машине конечного пользователя. Очевидно что-то путаю, поправьте меня. P.S. что-то я в упор не вижу как здесь отредактировать своё сообщение, написанное ранее ![]() |
|
|
Litkevich Yuriy |
![]()
Сообщение
#5
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
еще стопку библиотек их там будет столькочто-то я в упор не вижу как здесь отредактировать своё сообщение, написанное ранее накопишь 20 полезных сообщений, появится такая возможностьQt не называется статической ? нет, динамическая.а динамическая(распространяемая исходными кодами) не имеет отношения к исходному коду.То, что ты скачал называется просто "установщик/installer". Динамическая сборка - это когда создаются dll'ки и приложение линкуется к ним во время выполнения Статическая сборка - это когда создаются lib- или a-файлы и приложение линкуется к ним во время компиляции и получается здоровенный exe'шник |
|
|
SDLM |
![]()
Сообщение
#6
|
Студент ![]() Группа: Новичок Сообщений: 16 Регистрация: 19.4.2009 Пользователь №: 694 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
![]() ![]() |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 28.2.2025, 4:53 |