• 4998阅读
  • 0回复

linux 下编译Qt5.0 mysql 过程 [复制链接]

上一主题 下一主题
离线some0ne
 

只看楼主 倒序阅读 楼主  发表于: 2013-01-10
— 本帖被 XChinux 执行加亮操作(2013-01-10) —
关键词: QT5mysqllinux
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"字样必须是大写.
只有到崩溃的那一刻, 才可能达到完美.
快速回复
限100 字节
 
上一个 下一个