Qt5 mysql驱动 linux下的编译

最新需要在Linux下搭建一个Qt访问Mysql的环境。途中遇到了很多坑,特此记录下,也希望碰到同样问题的同学能少走弯路。

1、Qt5自带的QMySql

虽然有自带的库,然而实际情况下各个使用的Linux版本不一,基本是无法使用的。在使用ldd命令查看了自带库发现缺少依赖的库。由于安装的过程中没有截图,这里借用别的blog里的一张图。

然后按照许多其他blog中写的那样对着3个库使用ln -s建立了链接,结果就出现了如下状况,依旧无法运行,无法解决,最终只能自己编译:

    QSqlDatabase: MYSQL driver not loaded
    QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

 2、Qt5在Linux下访问Mysql库的编译

过程:

修改目录下的pro文件,最后一行增加

INCLUDEPATH += -L/usr/lib/i386-linux-gnu -lmysqlclient

如果是64位的对应修改。其余就不说了,只说下我遇到的报错以及对应的解决方法好了。

错误类似如下情况

    g++ -c -pipe -I/usr/include/mysql -O2 -fvisibility=hidden -fvisibility-inlines-hidden -std=c++0x -fno-exceptions -Wall -W -D_REENTRANT -fPIC -DQT_NO_MTDEV -DQT_NO_LIBUDEV -DQT_NO_TSLIB -DQT_NO_LIBINPUT -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -I. -I/usr/local/include -I/opt/QtOpenSource55/5.5/Src/qtbase/include/QtCore/5.5.0 -I/opt/QtOpenSource55/5.5/Src/qtbase/include/QtCore/5.5.0/QtCore -I/opt/QtOpenSource55/5.5/Src/qtbase/include/QtSql/5.5.0 -I/opt/QtOpenSource55/5.5/Src/qtbase/include/QtSql/5.5.0/QtSql -I../../../../include -I../../../../include/QtSql -I../../../../include/QtCore -I.moc -I../../../../mkspecs/linux-g++ -o .obj/qsql_mysql.o ../../../sql/drivers/mysql/qsql_mysql.cpp
    ../../../sql/drivers/mysql/qsql_mysql.cpp:36:40: fatal error: QtSql/private/qsqldriver_p.h: No such file or directory
     #include <QtSql/private/qsqldriver_p.h>
                                            ^
    compilation terminated.
    Makefile:2003: recipe for target '.obj/qsql_mysql.o' failed
    make: *** [.obj/qsql_mysql.o] Error 1

解决的方法也很简单, 不用按别的文章说的找来找去复制来复制去的,缺少的头文件在下列库中,直接安装就好了。

apt-get install qtbase5-private-dev
---------------------
作者:咔_咔
来源:CSDN
原文:https://blog.csdn.net/asddsazxc3/article/details/83963470
版权声明:本文为博主原创文章,转载请附上博文链接!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值