crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> проблема с qt creator`ом
SDLM
  опции профиля:
сообщение 29.6.2009, 8:12
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 16
Регистрация: 19.4.2009
Пользователь №: 694

Спасибо сказали: 0 раз(а)




Репутация:   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.
Собственно после выполнения всего выше описанного возникает смутное ощущение :unsure: , с одной стороны судя по демкам сочетание MinGW + Qt очень много обещающее, и я весьма наслышан о том как многие разработчики хвалят Qt, но с другой стороны ... А вот нельзя было всё руками сделать ? что б конечный пользователь, что бы собрать свой первый проект, не тратил пол дня на выковыривание из инета решений каких то банальнейших проблем. Вот почему фаел qt.conf не лежал там где ему пологается ? и с Creator`ом тоже кривость ...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 29.6.2009, 8:45
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Тролли опять наверно забыли допатчить пути:

Thanks for reporting that, seems that we forget to patch some of the  
paths while installing.


Цитата(SDLM @ 29.6.2009, 9:12) *
команда 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
  опции профиля:
сообщение 29.6.2009, 8:53
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(SDLM @ 29.6.2009, 12:12) *
1. что делать с командой make, ока вообще должна работать ? в чём проблема ?
2. команда mingw32-make нормально заменяет команду make или ...?
make - общее название программ такого рода.
сделай батник:
mingw32-make.exe %*
и положи его рядом с mingw32-make.exe

Для нормальной работы (и компиляции и скомпилированных программ) нужно, чтобы в переменной окружения PATH были пути к бинарям компилятора и инструментов Qt.

Цитата(SDLM @ 29.6.2009, 12:12) *
3. что необходимо сделать что бы на выходе получился exe-шник не требующий сторонних библиотек?
пересобрать библиотеку Qt стстаически. Я рекомендую не заморачиватся с этим.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SDLM
  опции профиля:
сообщение 29.6.2009, 10:14
Сообщение #4


Студент
*

Группа: Новичок
Сообщений: 16
Регистрация: 19.4.2009
Пользователь №: 694

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(SABROG @ 29.6.2009, 13:45) *
Цитата
что необходимо сделать что бы на выходе получился exe-шник не требующий сторонних библиотек?

Искать решение в гугле. Много статей на эту тему написано. ...

Ясно, будем ковырять...


Цитата(Litkevich Yuriy @ 29.6.2009, 13:53) *
make - общее название программ такого рода.

ясно, типо того и ожидал услышать


Цитата(Litkevich Yuriy @ 29.6.2009, 13:53) *
Для нормальной работы (и компиляции и скомпилированных программ) нужно, чтобы в переменной окружения PATH были пути к бинарям компилятора и инструментов Qt.

Да это то понятно, имелось ввиду что мне нужно скомпилировать прогу, пойти на другой комп, и там запустить её, и получается что для этого нужно в папке с exe-шником тащить еще стопку библиотек :(


Цитата
пересобрать библиотеку Qt стстаически. Я рекомендую не заморачиватся с этим.

Эм ... ну в принципе направление развития ясно, но ... разве предскомпилированная(собранная Тролями и распространяемая в виде .exe файла) Qt не называется статической ? а динамическая(распространяемая исходными кодами) это соответственно когда Qt компилируется на машине конечного пользователя. Очевидно что-то путаю, поправьте меня.

P.S.
что-то я в упор не вижу как здесь отредактировать своё сообщение, написанное ранее :(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 29.6.2009, 10:27
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(SDLM @ 29.6.2009, 14:14) *
еще стопку библиотек
их там будет столько

Цитата(SDLM @ 29.6.2009, 14:14) *
что-то я в упор не вижу как здесь отредактировать своё сообщение, написанное ранее
накопишь 20 полезных сообщений, появится такая возможность

Цитата(SDLM @ 29.6.2009, 14:14) *
Qt не называется статической ?
нет, динамическая.

Цитата(SDLM @ 29.6.2009, 14:14) *
а динамическая(распространяемая исходными кодами)
не имеет отношения к исходному коду.
То, что ты скачал называется просто "установщик/installer".

Динамическая сборка - это когда создаются dll'ки и приложение линкуется к ним во время выполнения
Статическая сборка - это когда создаются lib- или a-файлы и приложение линкуется к ним во время компиляции и получается здоровенный exe'шник
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SDLM
  опции профиля:
сообщение 29.6.2009, 10:44
Сообщение #6


Студент
*

Группа: Новичок
Сообщений: 16
Регистрация: 19.4.2009
Пользователь №: 694

Спасибо сказали: 0 раз(а)




Репутация:   0  


:) Спасибо за быстрый и качественный ответ! :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 24.4.2024, 4:59