Какие Qt DLL мне следует скопировать, чтобы сделать мою программу автономной?

Я пытаюсь создать каталог распространения с моим приложением. Я скопировал несколько Qt DLL в этот каталог, и программа, кажется, работает, за одним исключением: похоже, она не находит подключаемый модуль SQL для SQLite. Копирование qtsqlite.dll в каталог не позволяет моему приложению открывать или создавать файлы SQLite. Какой должна быть структура каталогов или какие дополнительные файлы необходимо скопировать, чтобы программа могла читать базу данных?


person kyku    schedule 05.03.2009    source источник


Ответы (3)


вы можете использовать depends.exe, чтобы точно узнать, какие зависимости у вашего исполняемого файла, и убедиться, что все они включены.

Также прочтите эту страницу о плагинах qt. они должны находиться в определенном каталоге под названием «плагины», а не в основном каталоге со всеми другими DLL.

person shoosh    schedule 05.03.2009
comment
По умолчанию приложение будет использовать свой стартовый каталог в качестве каталога плагинов; вам нужно поместить драйверы в имя каталога базового класса: например, app_dir/sqldrivers. - person dwj; 08.07.2009

Скорее всего, сама qtsqlite.dll зависит от оригинальной DLL SQLite, которую вам, вероятно, также необходимо скопировать.

Не забудьте включить копию лицензии LGP в свой дистрибутив, а также указатели на исходные ресурсы для загрузки библиотек, которые вы включаете, и их источники. Чтобы остаться с законом :-)

person ypnos    schedule 05.03.2009

Благодаря предоставленной ссылке @shoosh я смог решить проблему. Мне нужно было создать подкаталог sqldrivers в каталоге дистрибутива с библиотекой qsqlite.dll внутри. Но это был только первый шаг. Есть ли у вас какие-либо советы и ресурсы по созданию полноценного установщика Windows? Я в основном программист Linux, поэтому эта область мне неизвестна.

person kyku    schedule 05.03.2009
comment
Возможно, NSIS является хорошей отправной точкой для вас: nsis.sourceforge.net Это открытый исходный код и скрипты. Хорошо для программистов Linux :-D - person ypnos; 05.03.2009