Qt Mysql linux驱动编译
编译运行Qt连接MySQL数据库程序的时候,控制台会报如下错误:QSqlDatabase: QMYSQL driver not loaded,原因在于Mysql驱动libqsqlmysql.so未能成功安装,linux版本下只安装了sqlite驱动,Mysql驱动需根据安装数据库的依赖项进行编译。
一、所在源码位置
现版本Qt中Mysql所在的源代码位置位于/opt/Qt5.12.7/5.12.7/Src/
qtbase/src/plugins/sqldrivers/mysql,数据库安装位置在/usr/local/mysql。
二、更改工程文件mysql.pro
1、加入CONFIG+=debug_and_release,编译debug和release版本;
2、注释原来#QMAKE_USE += mysql;
3、增加INCLUDEPATH += /usr/local/mysql/include(数据库头文件);
4、增加LIBS += /usr/local/mysql/lib/libmysqlclient.so数据库依赖项;
三、更改文件qsqldriverbase.pri
注释../mysql(sqldrivers)下qsqldriverbase.pri文件中的
#include($$shadowed($$PWD)/qtsqldrivers-config.pri);
增加include($$shadowed($$PWD)/configure.pri);
四、编译驱动
1、通过qmake指令生成makefile文件;
commond: sudo /opt/Qt5.12.7/5.12.7/gcc_64/bin/qmake mysql.pro
文件夹下出现三个Makefile文件,分别为debug、release和两者;
2、通过make指令生成需要的共享动态库;
commod:make -release/debug编译不同版本的.so库 。
通过以上步骤编译好的mysql数据库驱动位于.../plugins/sqldrivers/libqsqlmysql.so。