Решение проблем
Вы должны всегда использовать библиотеки клиента, которые были собраны тем же компилятором, который вы используете для своего проекта. Если вы не можете получить описание источника сборки библиотеки клиента самостоятельно, попробуйте удостовериться, что предсобранная библиотека совместима с вашим компилятором, иначе вы получите множество ошибок "undefined symbols". Некоторые компиляторы имеют инструменты для преобразования библиотек, например, Borland предоставляет инструмент COFF2OMF.EXE для преобразования библиотек, которые были собраны в Microsoft Visual C++.
Если компиляция плагина прошла успешно, но он не может быть загружен, убедитесь в том, что следующие требования выполнены:
Убедитесь, что вы используете Qt библиотеку динамически; вы не может использовать плагины в статической сборке.
Убедитесь, что плагин в правильной директории. Можно использовать QApplication::libraryPaths(), чтобы определить, где Qt ищет плагины.
Убедитесь, что клиентские библиотеки СУБД доступны. Под Unix, выполните команду ldd и введите имя плагина в качестве параметра, например: ldd libqsqlmysql.so. Вы получите предупреждение, если какая-то из клиентских библиотек не найдена. Под Windows, вы можете использовать Visual Studio dependency walker.
Скомпилируйте Qt с установленным QT_DEBUG_COMPONENT, чтобы получить более подробную отладочную информацию во время загрузки плагинов.
Если у вас возникли проблемы с загрузкой плагинов и вы видите ошибку вроде этой:
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QMYSQL
проблема, вероятно, в том, что плагин имеет неправильный ключ сборки. Для отладки удалите соответствующую запись в файле $HOME/.qt/qt_plugins_(qtversion).rc.
После чего снова попытайтесь загрузить этот плагин, и вы получите более детальное описание ошибки.
=)