Russian Qt Forum
Ноябрь 24, 2024, 06:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Решено] Как запустить приложение вне QTCreator?  (Прочитано 15426 раз)
Серж
Гость
« : Январь 05, 2012, 17:49 »

Ситуация такова. Имеется Win 7, скачанный и установленный QT Creator. Написано простенькое приложение, которое компилируется. Выбираю параметры сборки release, запускаю, иду в папку, и вижу там свой .exe  а так же файлы .о (объектые, как я понял) и один файл .cpp. Меня интересует, как запустить .exe? Требовал библиотеки, кинул рядом с ним

QtCore4.dll
QtGui4.dll
mingwm10.dll
libgcc_s_dw2-1.dll

но после этого пишет что точка входа в процедуру нее найдена. Библиотеки брал из директории, где установлен QT Creator. Что не так?
« Последнее редактирование: Январь 09, 2012, 01:51 от Серж » Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #1 : Январь 05, 2012, 20:18 »

Пропиши путь на QTDIR/bin.

А библиотеки из QtCreatora не подойдут.
Собраны майкрософтовским компилятором.
Записан
Серж
Гость
« Ответ #2 : Январь 05, 2012, 22:56 »

После долгих мучений дошел до следующего этапа:
1) Скачал отсюда чисто библиотеку qt http://qt.nokia.com/downloads
2) Установил minGW, дописал в переменную PATH строку C:\MinGW\bin;C:\Qt\;C:\Qt\bin\
3) В QT Creator пишем любое приложение, отлаживаем его и тд. В результате у нас имеются исходные коды и файл .pro
4) Выполнить->cmd. Идем в папку, где лежат коды и файл .pro, для этого пишем команду "cd <папка с кодами>" затем ентер
5) Затем пишем qmake, выполняем, и в папке создаются мейкфайлы
6) Команда mingw32-make и в папке готовое приложение.
Для работы с приложением на другом компе потребуется скопировать из C:\Qt\номер версии библиотеки\bin (из того, что мы устанавлливали на первом шаге) библиотеки

mingwm10.dll
QtCore4.dll
QtGui4.dll

и закинуть в одну папку с приложением. Либо, прописывать в переменную PATH строку C:\MinGW\bin;C:\Qt\;C:\Qt\bin\ либо кидать все это дело в system32.

Но кто мне подскажет, как сделать так, чтобы можно было забирать компиляцию прямо из QT Creator (из папки release)? Потому что та компиляция с этими библиотеками не работает, пишет тоже самое, что в первом сообщении этой темы
« Последнее редактирование: Январь 05, 2012, 23:01 от Серж » Записан
ufna
Гость
« Ответ #3 : Январь 06, 2012, 00:24 »

мсье знает толк в извращениях О_о

изначальное "точка входа в процедуру не найдена" - там из другой папки рядом бери дллки и все.
Записан
iroln
Гость
« Ответ #4 : Январь 06, 2012, 10:29 »

Цитировать
3) В QT Creator пишем любое приложение, отлаживаем его и тд. В результате у нас имеются исходные коды и файл .pro
4) Выполнить->cmd. Идем в папку, где лежат коды и файл .pro, для этого пишем команду "cd <папка с кодами>" затем ентер
5) Затем пишем qmake, выполняем, и в папке создаются мейкфайлы
6) Команда mingw32-make и в папке готовое приложение.
Не понял, почему в QtCreator нельзя просто нажать на кнопочку Build? Зачем всё вручную делать? IDE - это как бы не только редактор. Улыбающийся

Для работы приложения на целевом компьютере нужно вместе с ним распространять библиотеки Qt и mingw, с которыми оно было собрано. В чём проблема то? После сборки можете скопировать библиотеки из QTDIR/bin в папку с релизом вашего приложения.

Если собираете с mingw, то ещё нужны библиотеки:
mingwm10.dll
libgcc_s_dw2-1.dll

Итого для самого простого Qt приложения нужно вместе с экзешником распространять библиотеки:
QtGui4.dll
QtCore4.dll
mingwm10.dll
libgcc_s_dw2-1.dll

Записан
Серж
Гость
« Ответ #5 : Январь 06, 2012, 11:13 »

В том-то и дело, что полученная компиляция собранная в QTCreator (release)  не заработала ни с какими библиоотеками. Ни с теми, что были в <DIRQTCreator> ни с теми, что были в QT\bin. Везде пишет ошибку про точку входа
Записан
iroln
Гость
« Ответ #6 : Январь 06, 2012, 11:27 »

То есть в QtCreator собираете release сборку, затем из папки QTDIR\bin копируете релизные библиотеки в папку с экзешником и оно не работает?

Запустите утилиту ProcessMonitor из пакета Sysinternals и посмотрите какие библиотеки цепляются вашим приложением. Возможно, проблема в том, что первыми находятся не те библиотеки, которые нужно. Такое часто бывает, потому что библиотеки ищутся сначала в PATH, а только потом рядом с экзешником.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #7 : Январь 06, 2012, 14:28 »

может не совсем по вопросу автора, но только что сам столкнулся с "не найдена точка входа", хотя путь до QTDIR/bin присутствует в PATH (в самом конце). скопировал нужные дллки к экзешнику - всё норм. потом догадался переместить путь в PATH в самое начало - и сразу всё забегало. видно какая-то другая программа из PATH тоже использует библиотеки Qt в своей папке, но другой версии.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Серж
Гость
« Ответ #8 : Январь 06, 2012, 15:53 »

Все, разобрался. Библиотеки надо копировать из C:\QtSDK\Desktop\Qt\4.7.4\mingw\bin Все заработало. Копировать надо

QtCore4.dll
QtGui4.dll
mingwm10.dll
libgcc_s_dw2-1.dll
Записан
ufna
Гость
« Ответ #9 : Январь 06, 2012, 16:42 »

ну дык ответили же, что из другой папки надо брать  Смеющийся ты дергал msvs-собранные видимо
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #10 : Январь 06, 2012, 19:09 »

А теперь внимательно смотрим первый ответ.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.128 секунд. Запросов: 23.