Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Не работает Qt-приложение на другом ПК


Автор: wowka19 28.5.2013, 22:58
Qt 4.6.3 Win7x32

Мое приложение использует драйвер MySQL, который лежит "C:\Qt\2010.04\qt\plugins\sqldrivers\qsqlmysql4.dll". 
По аналогии с другими динамическими библиотеками (QtCore4.dll, QtGui.dll, mingwm10.dll, etc...) я скопировал ее в директорию приложения, но это не помогло. Похоже используются абсолютные пути, хотя не уверен.
Как правильно скомпилировать переносимое приложение, использующее в своей работе плагины?

Вообще приложение ведет себя очень странно:
Подгружает БД если "qsqlmysql4.dll" есть в "C:\Qt\2010.04\qt\plugins\sqldrivers\"
Подгружает даже если я переименовываю "qsqlmysql4.dll" в любую ***.* - запускается дольше, но РАБОТАЕТ! Т.е. даже расширение не важно, лишь бы оно было (да хоть так 123.4)
БД не грузится только если я вообще удаляю "qsqlmysql4.dll" из указанной выше папки.

Автор: Amp 29.5.2013, 01:26
Цитата(wowka19 @  28.5.2013,  22:58 Найти цитируемый пост)
я скопировал ее в директорию приложения

Создай sqldrivers в каталоге с программой и скопируй туда.

Автор: wowka19 29.5.2013, 02:28
Amp, Ух! Спасибо огромнейшее - я бы долго гадал.
А вообще какова теория такого поведения, почему приложение ссылается на "./sqldrivers/qsqlmysql4.dll", а не, например, "./plugins/sqldrivers/qsqlmysql4.dll"? Где это устанавливается?

Автор: bsa 29.5.2013, 14:59
http://qt-project.org/doc/qt-4.8/qcoreapplication.html#addLibraryPath

Автор: wowka19 1.6.2013, 14:08
bsa, спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)