• 6287阅读
  • 1回复

编译Mysql驱动成功。但编译qt访问数据库代码有问题 [复制链接]

上一主题 下一主题
离线metalchen
 

只看楼主 倒序阅读 楼主  发表于: 2008-03-20
— 本帖被 XChinux 执行加亮操作(2008-03-31) —
成功编译mysql驱动后,生成libmysql.so和libmysql.so.debug两个文件。但是编写调用数据库代码。我的环境是qt4.3.1 msql.5.0.45 红旗6桌面版
#include <QtGui>
#include <QApplication>
#include <QSqlDatabase>
#include <QDebug>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QTGui w;
    QSqlDatabase  db=QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setDatabaseName("money");
    db.setUserName("root");
    db.setPassword("chenhao");
    bool  opened=db.open();
    if (opened)
        qDebug()<<"open mysql !!";
    w.show();
    a.connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()));
    return a.exec();
}
运行后 出现如下错误提示:
  /root/workspace/QTGui/QTGui: symbol lookup error:  /usr/local/Trolltech/Qt-4.3.1/plugins/sqldrivers/libqsqlmysql.so: undefined symbol: mysql_server_init
  斑竹是否能帮忙解决阿?能否给个mysql5.0 在linux下的驱动阿  能发到xxmetalchen@foxmail.com上 谢谢了
[ 此贴被metalchen在2008-03-20 15:11重新编辑 ]
离线metalchen

只看该作者 1楼 发表于: 2008-03-31
已经搞定了。。原来之前编译的mysql驱动是有问题,尽管可以编译成功但是,编译完的两个文件是毕竟小的才几百k而已。是原来我自作聪明修改了编译选项。
要把qt4帮助里的那行从
  qmake -o Makefile "INCLUDEPATH+=/usr/local/include" "LIBS+=-L/usr/local/lib -lmysqlclient_r" mysql.pro
改为
  qmake -o Makefile "INCLUDEPATH+=/usr/local/include" "LIBS+=-L/usr/lib/mysql -lmysqlclient_r" mysql.pro
这样编译出来的两个文件总共有5MB左右。就ok了
快速回复
限100 字节
 
上一个 下一个