欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux 编译QT的mysql驱动

程序员文章站 2022-06-04 13:36:19
...

为编译这个驱动真的是一把血一把泪啊

主要是要在阿里云上跑用QT写的服务器,但是运行的时候提示需要mysql驱动,只好自己编译qt的mysql驱动。

一开始编译QT的源码发现默认选项的sql只有sqllite.so,但是我需要的是mysql的动态库,这样就要自己编译了。

下载

首先下载你需要的QT版本,去http://download.qt.io/archive/qt/
这里找到你要的版本,比如我要用5.9.2。那么我就下载qt-everywhere-opensource-src-5.9.2.tar.xz。解压我就不说了,自己可以搜一搜。

安装

mysql是直接apt的,所以会有很多依赖库的问题出现,有条件的可以安装一个完整版的

如果你的mysql也和我一样是自己安装的话还要下载一下mysql的动态库,不然会出现没有lib依赖包的情况。具体的mysql安装自己搜一下。

sudo apt-get install libmysqlclient-dev

编译

这里是个大坑,查询了了很多资料。

源码解压后找到你解压的目录,进入
/usr/local/qt-everywhere-opensource-src-5.9.2/qtbase/src/plugins/sqldrivers/mysql

开始编译

qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=/usr/lib/x86_64-linux-gnu/libmysqlclient.so" mysql.pro

网上有些教程是lib库在/usr/lib/mysql,但是我这里死活找到不到,后来查询资料发现我的在/usr/lib/x86_64-linux-gnu/里。qmake完后make

make

如果make没有错误提示就证明编译成功,输入

make install

这样在
/usr/local/qt-everywhere-opensource-src-5.9.2/qtbase/plugins/sqldrivers
就能在你们找到你想要的驱动了,libqsqlmysql.so

我一开始在这里踩了很多坑,比如:

error: undefined reference to 'qt_version_tag'

这是因为我一开始写的qmake是

qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/x86_64-linux-gnu/ -lmysqlclient" mysql.pro

因为系统默认的qmake的qt版本和你自己安装包使用的版本不一样

http://blog.csdn.net/qq_17278169/article/details/78232725
这篇文章给了一个很好的解释说明,十分感激

相关标签: linux QT mysql