Знаю, что тема очень избитая, но у меня не получается собрать драйвер MySQL для Qt 5.8 (MinGW). Гуглил хорошо, пробовал массу вариантов.
Глобальные переменные окружения, если что
C:\Qt\Qt5.8.0mingw\5.8\Src\qtbase\src\plugins\sqldrivers\mysql>where qmake C:\Qt\Qt5.8.0mingw\5.8\mingw53_32\bin\qmake.exe
C:\Qt\Qt5.8.0mingw\5.8\Src\qtbase\src\plugins\sqldrivers\mysql>where mingw32-make C:\Qt\Qt5.8.0mingw\Tools\mingw530_32\bin\mingw32-make.exe
Установил MySQL Connector в C:\Qt\Mysql. Проблем с кириллицей/пробелами не должно быть.
C:\Qt\Qt5.8.0mingw\5.8\Src\qtbase\src\plugins\sqldrivers\mysql>qmake "INCLUDEPATH+=C:\Qt\MySQL\include" "LIBS+=C:\Qt\MySQL\lib\libmysql.lib" mysql.pro
Далее выполнил команду
C:\Qt\Qt5.8.0mingw\5.8\Src\qtbase\src\plugins\sqldrivers\mysql>mingw32-make
mingw32-make -f Makefile.Release all
mingw32-make[1]: Entering directory 'C:/Qt/Qt5.8.0mingw/5.8/Src/qtbase/src/plugins/sqldrivers/mysql'
...
g++ -Wl,-s -shared -Wl,-subsystem,windows -Wl,--out-implib,C:\Qt\Qt5.8.0mingw\5.8\Src\qtbase\plugins\sqldrivers\libqsqlmysql.a -o ..\..\..\..\plugins\sqldrivers\qsqlmysql.dll .obj/release/qsql_mysql.o .obj/release/main.o .obj/release/moc_qsql_mysql_p.o -LC:\utils\my_sql\my_sql\lib -LC:\utils\postgresql\pgsql\lib C:\Qt\MySQL\lib\libmysql.lib -LC:\Qt\Qt5.8.0mingw\5.8\mingw53_32\lib C:\Qt\Qt5.8.0mingw\5.8\mingw53_32\lib\libQt5Sql.a C:\Qt\Qt5.8.0mingw\5.8\mingw53_32\lib\libQt5Core.a -llibmysql .obj\release\qsqlmysql_resource_res.o
C:/Qt/Qt5.8.0mingw/Tools/mingw530_32/bin/../lib/gcc/i686-w64-mingw32/5.3.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -llibmysql
collect2.exe: error: ld returned 1 exit status
Makefile.Release:65: recipe for target '..\..\..\..\plugins\sqldrivers\qsqlmysql.dll' failed
mingw32-make[1]: *** [..\..\..\..\plugins\sqldrivers\qsqlmysql.dll] Error 1
mingw32-make[1]: Leaving directory 'C:/Qt/Qt5.8.0mingw/5.8/Src/qtbase/src/plugins/sqldrivers/mysql'
Makefile:38: recipe for target 'release-all' failed
mingw32-make: *** [release-all] Error 2
cannot find -llibmysql Элементарная вроде ошибка, много решений в гугле, но никак не могу решить проблему. Что я не так делаю?
UPD Либы вроде собрал. Только вот странная проблема. Не хочу плодить тему по такому пустяку(хотя для меня это не пустяк).
Если создавать подключение так:
QSqlDatabase pDB = QSqlDatabase::addDatabase("QMYSQL");
pDB.setHostName("sql11.freemysqlhosting.net");
pDB.setDatabaseName("sql11177506");
pDB.setPort(3306);
pDB.setUserName("sql11177506");
pDB.setPassword("ITIziMsIWx");
qDebug() << pDB.open() << pDB.lastError().text();
То как-бы работает. А если через указатель:
QSqlDatabase *pDB = new QSqlDatabase;
pDB->addDatabase("QMYSQL");
pDB->setHostName("sql11.freemysqlhosting.net");
pDB->setDatabaseName("sql11177506");
pDB->setPort(3306);
pDB->setUserName("sql11177506");
pDB->setPassword("ITIziMsIWx");
qDebug() << pDB->open() << pDB->lastError().text();
То пишет Driver not loaded Driver not loaded
Почему так не работает?
Попробуйте сделать так:
C:\Qt\Qt5.8.0mingw\5.8\Src\qtbase\src\plugins\sqldrivers\mysql>qmake "INCLUDEPATH+=C:\Qt\MySQL\include" "LIBS+=-LC:\Qt\MySQL\lib" mysql.pro
По поводу второй проблемы, попробуйте так:
QSqlDatabase *pDB = new QSqlDatabase;
*pDB = QSqlDatabase::addDatabase("QMYSQL");
pDB->setHostName("sql11.freemysqlhosting.net");
pDB->setDatabaseName("sql11177506");
pDB->setPort(3306);
pDB->setUserName("sql11177506");
pDB->setPassword("ITIziMsIWx");
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
При загрузке системы ubuntu в папке /var/run не создаётся папка mysqld, и => сокета тоже не создаётсяЯ так понимаю, папка mysqld должна быть в /run тоже, но её там...
При попытке подключения к удаленному MySQL серверу получаю ошибку "ERROR 2003 (HY000): Can't connect to MySQL server on 'ip-сервера' (111)", дело в том, что такая ошибка...
ЗдравствуйтеЗадание такое: в базе должно храниться не более 12 записей