ubuntu 下面配置QT MysqL环境
这次配环境真的有点恶心我了,所以写博客,为了尽量不恶心别人
参考链接1
参开链接2
参考链接3
一 首先必须安装Qt镜像以及MysqL
安装的时候qt选择全部,这样就包含源文件,后面出现问题可以自己编译文件,没有选择全部的话到上面地址中下载对应的源码,submoudle下面qtbase-src大概这样的文件
二 测试代码
如果代码能够直接运行最好不过了
#include <QApplication>
#include <QMessageBox>
#include <QDebug>
#include <Qtsql/QsqlDatabase>
#include <Qtsql/QsqlDriver>
#include <Qtsql/QsqlError>
int main(int argc,char *argv[])
{
QApplication a(argc,argv);
qDebug() << QCoreApplication::libraryPaths();
qDebug() << QsqlDatabase::drivers()<<endl; /*列出qt可用的数据库*/
/* * 链接MysqL数据库 */
QCoreApplication::addLibraryPath("/home/zeroxf/workspace/QT/5.8/gcc_64/plugins/sqldrivers/libqsqlMysqL.so");
QsqlDatabase db(QsqlDatabase::addDatabase("QMysqL"));
db.setHostName("127.0.0.1");
db.setDatabaseName("TestDB");
db.setUserName("root");
db.setPassword("liangxianfeng");
if (!db.open()) /*测试数据库是否链接成功*/
{
QMessageBox::critical(0,QObject::tr("Databse Error"),db.lastError().text());
qDebug() << db.lastError() << endl;
}
else
{
qDebug() << "Ok" << endl;
}
return 0;
}
正确运行结果,如果正确了,那就皆大欢喜,跳过以下所有步骤
失败结果
QsqlDatabase: QMysqL driver not loaded
QsqlDatabase: available drivers: QsqlITE QPsql QPsql7
QsqlError(“”,“Driver not loaded”,“Driver not loaded”)
三 重新编译libqsqlMysqL.so
到Qt5.8.0/5.8/gcc_64/plugins/sqldrivers,(你的对应安装目录)下面,运行下面命令
你会发现
xx.so =>> not found
这里就是说库文件存在依赖问题,需要自己编译
cd ~/Qt5.8.0/5.8/Src/qtbase/src/plugins/sqldrivers/MysqL
qmake “INCLUDEPATH+=/usr/include/” “LIBS+=-L/usr/lib/ -lMysqLclient” MysqL.pro
make
cp libqsqlMysqL.so ~/Qt5.8.0/5.8/gcc_64/plugins/sqldrivers
includepath就是MysqL.h的位置,以及libs是MysqLclient.so的位置,好像有的人会是MysqLclient_r,这里依照你那里命名的,自己改或者用ls -s 弄个映射
你
我遇到的问题
make 找不到MysqL.h
首先sudo find / -name MysqL.h,能找到的话就添加到includepath,不能的话就安装libMysqLclient-dev
sudo apt-get install libMysqLclient-dev
make 找不到qsqlerror.h
如果还报找不到qsqlerror.h,那么可能是你在用qt4的qmake编译,这里就需要修改环境变量了,参考链接
usr/bin/ld: cannot find -lxxx
我这里缺少
libssl.so.10 => not found
libcrypto.so.10 => not found