MySQL не подключается в приложении QT - PullRequest
0 голосов
/ 07 октября 2011

Я работаю над проектом QT на основе базы данных (в основном это инструмент для ведения дневников / дневников), который в конечном итоге позволит пользователям подключаться к MySQL, SQLite и Postgres.На данный момент построен только модуль MYSQL, но у меня проблемы с его работой в Windows.

Я компилирую против статической библиотеки QT 4.7.4 в Windows 7, и это позволилопрограмма для правильного поиска драйвера QMYSQL.Я знаю это, потому что я не получаю ошибку «Драйвер QMYSQL не загружен», когда я все собираю статически.Однако, когда я пытаюсь подключиться к базе данных, я получаю ошибки «QSqlQuery :: exec: база данных не открыта».Сначала я думал, что это потому, что удаленная база данных не будет принимать соединения с моего адреса, но я также не мог подключиться к localhost (как root, с правильным паролем).

Я знаю, что код приложения хорош, потому что он отлично работает в Linux (та же версия QT, нестатическая сборка ... казалось, что он "просто работает" при сборке в Linux без каких-либо дополнительных шагов), поэтому я 'Мне интересно, если QT правильно построен на Windows.Я написал командный файл для автоматизации процесса сборки:

TITLE Build QT 4.7.4 (static)    
ECHO ON

cd C:\qt-4.7.4\

path C:\MinGW\bin

configure.exe -opensource -platform win32-g++ -release -static -qt-sql-mysql -l mysql -I C:\include -L C:\lib   
PAUSE

mingw32-make

PAUSE

Правильно ли я собираю QT в Windows?Когда я впервые столкнулся с этой проблемой, я следовал этим инструкциям: http://rag.com.au/linux/qt4howto.html, но он все равно не работал после самой последней сборки.

Мне приходилось собирать QT статически, потому что без этого мое приложение не могло бы 'найти драйвер QMySQL.Сначала я пытался использовать include / библиотеки из версии сообщества MySQL 5.5, но сборка по какой-то причине не удалась.(Что-то не понравилось в этом конкретном libmysql.lib) Когда я попытался использовать заголовки / библиотеки, скомпилированные в Linux, сборка завершилась правильно, но сейчас у меня возникает эта проблема.

Имеет ли значение, где хранятся Заголовки / Библиотеки при компиляции QT?

Также у меня есть трехъядерный процессор.Во время сборки Windows я заметил, что mingw32-make использует только одно ядро, так как мой процессор все время работал на 33%.Есть ли способ заставить его использовать весь процессор, чтобы его сборка не заняла 4-5 часов?

Заранее благодарен за любую помощь / предложения.

1 Ответ

0 голосов
/ 08 октября 2011

Попробуйте, чтобы получить доступные драйверы для вас.

QSqlDatabase * db = new QSqlDatabase;
qDebug() << db->drivers();

Это даст вам список доступных драйверов.
Проверьте, есть ли "QMYSQL" .

Если его нет, вам придется установить драйвер.

Проверьте эта ссылка для установки.

...