Ubuntu16下Qt5链接MySQL时出现libmysqlclient.so.18 not found 的解决方法

Ubuntu16下Qt5链接MySQL时出现libmysqlclient.so.18 => not found 的解决方法

问题背景:按照此参考博客的方法进行了Qt5与MySQL的链接时,发现新问题 libmysqlclient.so.18 => not found .

解决方法研究:阅读了一些博客 ,有的博客建议重新编译“制作”libmysqlclient.so.18,这种方法比较繁琐,我没有成功。

解决方法:

1. 打开链接 https://launchpad.net/ubuntu/xenial/amd64/libmysqlclient18/5.6.25-0ubuntu1

2.下载 libmysqlclient18_5.6.25-0ubuntu1_amd64.deb

3.安装

4.问题解决


备注:测试代码 (稍微修改了 参考博客 的代码)

#include
#include
#include
#include
#include
#include

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    qDebug() << QCoreApplication::libraryPaths();
    qDebug()<
    /*
     * 链接mysql数据库
     */
    QCoreApplication::addLibraryPath("/opt/Qt5.6.0/5.6/gcc_64/plugins/sqldrivers/libqsqlmysql.so");
    QSqlDatabase db(QSqlDatabase::addDatabase("QMYSQL"));
    db.setHostName("127.0.0.1");
    db.setDatabaseName("TestDB");
    db.setUserName("TestUser");
    db.setPassword("123456");

    if (!db.open()) /*测试数据库是否链接成功*/
    {
       qDebug()<    }
    else
    {
       qDebug()<<"Ok"<    }

    QSqlQuery query(db);

    query.exec("create table student(id int primary key,name varchar(20))");
    query.exec("insert into student values(1,'xiaogang')");
    query.exec("insert into student values(2,'xiaoming')");
    query.exec("insert into student values(3,'xiaohong')");

    query.exec("select id,name from student where id >= 2");

    while(query.next())
    {
        int value0 = query.value(0).toInt();
        QString value1 = query.value(1).toString();
        qDebug() << value0 << value1 ;
    }

    return 0;

}

运行结果:

Ubuntu16下Qt5链接MySQL时出现libmysqlclient.so.18 not found 的解决方法_第1张图片


你可能感兴趣的:(Ubuntu16下Qt5链接MySQL时出现libmysqlclient.so.18 not found 的解决方法)