linux 编译QT的mysql驱动
为编译这个驱动真的是一把血一把泪啊
主要是要在阿里云上跑用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
这篇文章给了一个很好的解释说明,十分感激
上一篇: windows下编译qt的mysql驱动
下一篇: 最伤肝的五大坏习惯 按摩五穴位养肝护肝
推荐阅读