Qt中找不到驱动程序错误

时间:2015-02-22 06:46:54

标签: mysql qt

我试图将mysql与Qt 5.2.1连接起来。我运行了一个程序但得到了错误

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

我在终端上运行以下命令来解决问题。

sudo apt-get install libqt5sql5-mysql

但问题仍然没有解决。

代码如下。

#include <QtGui>
#include <QtSql/QSql>
#include <QTableWidget>
#include <QApplication>
#include <QSqlDatabase>
#include <QMessageBox>
#include <QSqlError>
#include <QSqlQuery>
#include <QSqlRecord>
#include <QtSql/QSqlDriver>
int main(int argc,char* argv[])
{
    QApplication app(argc,argv);
    QTableWidget* table = new QTableWidget();
    table->setWindowTitle("Connect to Mysql Database Example");

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    qDebug()<<"abc";
    db.setHostName("192.168.11.3");
    db.setDatabaseName("menudb");
    db.setUserName("root");
    db.setPassword("test");
    if (!db.open())
    {
      QMessageBox::critical(0, QObject::tr("Database Error"),
                 db.lastError().text());
    }

    QSqlQuery query("SELECT * FROM test");

    table->setColumnCount(query.record().count());
    table->setRowCount(query.size());

    int index=0;
    while (query.next())
    {
    table->setItem(index,0,new QTableWidgetItem(query.value(0).toString()));
    table->setItem(index,1,new QTableWidgetItem(query.value(1).toString()));
    index++;
    }

    table->show();
    qDebug()<<"charu";
    return app.exec();
}

请帮我解决问题。

1 个答案:

答案 0 :(得分:0)

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

这意味着你有Qt的MySql插件驱动程序,但可能你没有MySql客户端lib(libmysqlclient.so)。
因此,请确保您的库路径中有libmysqlclient.so。 要检查插件的依赖关系,请使用:
    objdump -p /PathToQt/plugins/sqldrivers/libqsqlmysql.so |需要grep