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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Срочно! нужен личный консультант. Плачу за советы по QT  (Прочитано 8412 раз)
shedy2
Гость
« : Июль 06, 2014, 16:05 »

Я взялся за проект на QT 5.3 (qml), и в принципе со всем справляюсь, но вот когда дело дошло до компиляции и подключения сторонних библиотек, то вообще.. уже неделю бьюсь, нервы полные, не могу завершить этап. Мне нужен консультант, который скажет, что я делаю не так, скажет, что так и в общем всё по уму. И по факту я готов заплатить за эту работу 100-300$ в зависимости от того, насколько плодотворно поможете мне. Поверьте, я очень в этом нуждаюсь и хоть не могу предложить предоплату (т.к. уже просрочил проект на месяц и денег ноль), но я действительно Вам всё оплачу и буду ООЧЕЕНЬ ПРИЗНАТЕЛЕН.

Задачи, над которыми я бьюсь:
- Подключить библиотеку для проверки орфографии (я 2ое суток пытаюсь подключить hunspell, пусто)
- Запустить мое приложение на другом компе (статическая сборка или нет - без разницы, не могу просто заказчику показать)

Работа не разовая, а двухразовая, т.к. потом мне надо будет подключать librtmp+ffmpeg. И тут не подразумевается, что вы мне просто ссылки дадите, в нете я и сам искать умею. В общем опытный человек в QT (под винду), C++, MinGW, отзовись. Нужно срочно

Мой скайп: awesomeshedy
« Последнее редактирование: Июль 06, 2014, 16:13 от shedy2 » Записан
Alexu007
Гость
« Ответ #1 : Июль 06, 2014, 23:40 »

По поводу второй задачи - в Qt 4.7 я делал так: кладёшь в "новую папку" свежесозданный EXEшник и запускаешь - он ессно ругается и пишет, что не может найти библиотеку. Берёшь эту библиотеку в папке BIN(Qt) и копируешь в свою новую папку с EXEшником. В 4-м Qt повторяешь процедуру ещё три раза - всего нужно 4 библиотеки, в 5-том Qt этих библиотек нужно вроде уже с десяток, но принцип тот же. EXEшник с необходимыми ему библиотеками в папке запускается везде.

Ну чё, я баксов 20 заработал?
« Последнее редактирование: Июль 06, 2014, 23:43 от Alexu007 » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #2 : Июль 07, 2014, 00:47 »

не заработал Подмигивающий
Записан

Изучением 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
Bepec
Гость
« Ответ #3 : Июль 07, 2014, 01:07 »

Ага, ты забыл о плагине Platforms, который подгружается без прямой зависимости, но без него приложение - кусок окна Веселый
Записан
shedy2
Гость
« Ответ #4 : Июль 07, 2014, 01:50 »

Цитировать
По поводу второй задачи - в Qt 4.7 я делал так: кладёшь в "новую папку" свежесозданный EXEшник и запускаешь - он ессно ругается и пишет, что не может найти библиотеку. Берёшь эту библиотеку в папке BIN(Qt) и копируешь в свою новую папку с EXEшником. В 4-м Qt повторяешь процедуру ещё три раза - всего нужно 4 библиотеки, в 5-том Qt этих библиотек нужно вроде уже с десяток, но принцип тот же. EXEшник с необходимыми ему библиотеками в папке запускается везде.

Ну чё, я баксов 20 заработал?

Вы думаете, я по форумам не лазил?) Я, конечно, так пробовал. у меня доходит или до ошибки 0xc000005 или пишет, что platform not found 'windows': available platforms: 'desktop', 'windows', и т.д.
И папки plugin, platforms пихал очень многими способами.

Уверен, что если глянете тимвьювер, то за 5 минут разберетесь, там уже и заработаете >20 баксов)
Записан
shedy2
Гость
« Ответ #5 : Июль 07, 2014, 08:39 »

По вопросу запуска приложения на другом компе: почему-то никто не упоминает,а значит всем полезно будет узнать, что с версии 5.2 в комплекте QT идет утилита windeployqt, которая подгрузила мне все зависимости правильно. Также важно, чтобы qml, js были подключены через файл ресурсов (qrc://), иначе qml надо хранить как-то вместе с exe.
Записан
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #6 : Июль 07, 2014, 08:42 »

1. Если собираешь студией, то убедись, что установлен на целевой машине соотвествующий vcredistr. Иногда не хватает простого таскания либ студийного компилятора, вылезает ошибка при запуске. Для сборки с mingw достаточно таскать две либы с бинарником: libgcc_s_dw2-1.dll, libstdc++-6.dll

2. В комплекте с Qt 5.3 идет windeployqt.exe, который поможет сформировать папку с бинарём и всеми его зависимостями. Как правило он копирует больше файлов чем надо. Если будет запускаться, далее сможешь поудалять ненужные файлы, проверяя работоспособность.

3. Если запускается и белая форма, то тут возможны два варианта:
a) не поддерживается opengl >=2.0 для случая сборки Qt с OpenGL вместо Angle, можешь попробовать подложить к бинарнику сборку opengl с программной эмуляцией (llvmpipe) отсюда: http://www.prog.org.ru/topic_27216_0.html
b) не все используемые qml библиотеки доступы запускаемому бинарнику. Чтобы читать диагностику рекомендую перенаправить вывод qDebug и прочих в файл и читать этот файл на целевой машине. Обычно windeployqt копирует всё необходимое с излишком.

UPD. Опоздал
Записан

Гугль в помощь
Alexu007
Гость
« Ответ #7 : Июль 07, 2014, 09:58 »

Ага, ты забыл о плагине Platforms, который подгружается без прямой зависимости, но без него приложение - кусок окна Веселый
На компах с виндой ХР или 7 вроде запускается только с 4-мя библиотеками - сегодня точно проверю.
Записан
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #8 : Июль 07, 2014, 10:06 »

Ага, ты забыл о плагине Platforms, который подгружается без прямой зависимости, но без него приложение - кусок окна Веселый
На компах с виндой ХР или 7 вроде запускается только с 4-мя библиотеками - сегодня точно проверю.
Не путай версии Qt. С Qt4 проще, но и там надо plugins тянуть.
Записан

Гугль в помощь
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #9 : Июль 07, 2014, 10:42 »

или пишет, что platform not found 'windows': available platforms: 'desktop', 'windows', и т.д.
И папки plugin, platforms пихал очень многими способами.
http://www.prog.org.ru/index.php?topic=27292.msg197564#msg197564

На всякий случай разжевываю

- толкаете свою exe, она начинает вякать "не нашла dll" - копируете эту dll в ту же папку где и exe
- в конце-концов доползете до сообщения c "platform". Это значит что приложение уже запустилось
   - создаете папку "platforms" рядом с exe и в эту папку копируете qwindows.dll и qwindowsd.dll
   - указываете этот путь в своем приложении, перед созданием QApplication, пример

Код
C++ (Qt)
int main (int argc, char * argv[])
{
 QCoreApplication::setLibraryPaths(QFileInfo(argv[0]).absolutePath());
Записан
vipet
Бывалый
*****
Offline Offline

Сообщений: 452


Просмотр профиля
« Ответ #10 : Июль 07, 2014, 10:48 »

shedy2,

есть такая программа DependencyWalker, которая показывает какие либы нужны для твоей программы.
Для Qt5-проги это, как правило: icu*.dll, libEGL.dll, libGLESv2.dll, QtCore, QtGui, QtWidgets и т.п.

не забудь еще в папку с прогой и дллками добавить .\platforms\qwindows.dll

20$ переведи в детский дом Улыбающийся

Записан
vipet
Бывалый
*****
Offline Offline

Сообщений: 452


Просмотр профиля
« Ответ #11 : Июль 07, 2014, 10:50 »

еще dll-ки MS VС runtime не забудь
Записан
Bepec
Гость
« Ответ #12 : Июль 07, 2014, 10:58 »

Отпишусь за автора - ему уже помогли с этой темой Веселый
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #13 : Июль 07, 2014, 12:07 »

Ага, ты забыл о плагине Platforms, который подгружается без прямой зависимости, но без него приложение - кусок окна Веселый
На компах с виндой ХР или 7 вроде запускается только с 4-мя библиотеками - сегодня точно проверю.
количество библиотек зависит от количества подключенных модулей
Записан

Изучением 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
Alexu007
Гость
« Ответ #14 : Июль 07, 2014, 13:49 »

количество библиотек зависит от количества подключенных модулей
Программы у меня примитивные - калькулятор (кнопки и LineEdit), вычислитель CRC (кнопки, Label, диалог выбора файлов), морской бой (примитивная графика, ProgressBar). Всё запустилось и работало на постороннем компе без всякого Qt с 4-мя библиотеками: libgcc_s_dw2-1.dll, mingwm10.dll, QtCore4.dll, QtGui4.dll. Либо программы слишком просты, либо вы чего-то гоните... про платформс.
« Последнее редактирование: Июль 07, 2014, 13:52 от Alexu007 » Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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