运行此代码时,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驱动程序未加载
我也已经这样做了:
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
有什么主意吗?
答案 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(我上次这样做的地方),这不是必需的。
另一方面,libmysqlclient
(libmysqlclient_r
)不再是特殊的线程安全版本。只是一个而已。上次遇到链接错误时,我只是编辑了生成Makefile
以使用非_r。