Qt库'mysql'未定义

时间:2019-05-22 02:40:29

标签: mysql linux qt

运行此代码时,Qt与MySql连接时出现问题

    QSqlDatabase DBObject = QSqlDatabase::addDatabase("QMYSQL");
    DBObject.setHostName("localhost");
    DBObject.setDatabaseName("SingleDB");
    DBObject.setUserName("root");
    DBObject.setPassword("abc123");
    bool ok = DBObject.open();

我知道了... QSqlDatabase:QMYSQL驱动程序未加载 QSqlDatabase: QMYSQL driver not loaded

我也已经这样做了:

sudo apt-get install libmysqlclient

/home/wrm/Qt/5.12.3/gcc_64/bin/qmake "INCLUDEPATH+=/usr/local/include" "LIBS+=-L/usr/local/lib -lmysqlclient_r" mysql.pro

,这里我有此错误:项目错误:未定义库'mysql' enter image description here

有什么主意吗?

2 个答案:

答案 0 :(得分:0)

也许您需要安装mysql-devel

根据Qt文档QMYSQL for MySQL 4 and higher

  

如何在Unix和macOS上构建QMYSQL插件

     

您需要MySQL头文件以及共享库libmysqlclient.so。根据您的Linux发行版,您可能需要安装一个通常称为“ mysql-devel”的软件包。

答案 1 :(得分:0)

Google尚无法提供答案,因此请回答这个旧问题:

除了需要上面指出的开发文件(例如apt install libmysqlclient-dev)之外,您还需要生成一个配置:

# Just for making my snippet work. Feel free to hardcode paths.
export QTDIR=/home/you/Qt/
export QTVERSION=5.9.5

cd $QTDIR/$QTVERSION/Src/qtbase/src/plugins/sqldrivers
$QTDIR/$QTVERSION/gcc_64/bin/qmake sqldrivers.pro
cd mysql
make
make install # if you want; it installs it in the bin dir of $QTVERSION

过去,对于Qt 5.5(我上次这样做的地方),这不是必需的。

另一方面,libmysqlclientlibmysqlclient_r)不再是特殊的线程安全版本。只是一个而已。上次遇到链接错误时,我只是编辑了生成Makefile以使用非_r。