linux 下编译Qt5.0 mysql
在openSUSE12.2下.
1. 安装Qt5. qt-linux-opensource-5.0.0-x86-offline.run
2. 增加环境变量. 否则编译时会找不到路径, 也就找不到文件.
在 /etc/profile 最后增加
export QTDIR=/opt/Qt5.0.0/5.0.0/gcc
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
3. qmake
qmake "INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/var/lib/mysql/mysql -lmysqlclient_r" mysql.pro
注意这里"/usr"前面不能加"-I". 否则生成的Makefile会有问题, mysql路径包含不进去, 编译时会报找不到mysql.h
4. make
生成的库文件在
/opt/Qt5.0.0/5.0.0/Src/qtbase/plugins/sqldrivers 下
复制到 $QTDIR/plugins/sqldrivers目录下
5. 测试
#include <QtCore/QCoreApplication>
#include <QSqlQuery>
#include <QSqlDatabase>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setUserName("root");
db.setPassword("123456");
db.setDatabaseName("test");
if(db.open())
{
qWarning()<<"ok";
}
else
{
qWarning()<<"error";
}
return a.exec();
}
如果提示找不到库文件, 就修改一下pro文件.增加
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
QT += sql
"QT"字样必须是大写.