Linux QT5.2下编译MySQL5.6.7驱动

Linux 下编译MySQL驱动:

环境:Qt5.2.1 + MySql5.6.17 + ubuntu12.04

 

1、下载Mysql5.6.17安装包MySQL-5.6.17-1.linux_glibc2.5.i386.rpm-bundle.tar

2、安装alien工具将rpm包转换成deb:使用命令alien -d x.rpm 生成x.deb

3、mysql安装之后,执行命令:dpkg -l|grep mysql查看安装的mysql组件,要编译mysql驱动下边的组件必须安装:

 

ii mysql-client                                  5.6.17-2                                MySQL - Client

ii mysql-devel                                  5.6.17-2                               MySQL - Development header files and libraries

ii  mysql-server                                  5.6.17-2                                MySQL: a veryfast and reliable SQL database server

 

4、在qt安装目录mysql驱动源码所在的目录执行如下命令:

 qmake"INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql-lmysqlclient_r" mysql.pro

生成makefile文件

5、然后make

make过程中可能出现下列错误:

ers/mysql# make

….....................

 -I/home/lhl/Qt5.2.1/5.2.1/gcc/include/QtCore/5.2.1-I/home/lhl/Qt5.2.1/5.2.1/gcc/include/QtCore/5.2.1/QtCore-I/home/lhl/Qt5.2.1/5.2.1/gcc/include/QtCore -I.moc -o .obj/moc_qsql_mysql_p.o.moc/moc_qsql_mysql_p.cpp

rm -f libqsqlmysql.so

g++ -Wl,--no-undefined -Wl,-O1-Wl,-rpath,/home/lhl/Qt5.2.1/5.2.1/gcc -Wl,-rpath,/home/lhl/Qt5.2.1/5.2.1/gcc-Wl,-rpath,/home/lhl/Qt5.2.1/5.2.1/gcc/lib -shared -o libqsqlmysql.so.obj/main.o .obj/qsql_mysql.o .obj/moc_qsql_mysql_p.o  -L/usr/lib/mysql -ldl -lrt-Wl,-Bsymbolic-functions -rdynamic -lmysqlclient_r-L/home/lhl/Qt5.2.1/5.2.1/gcc/lib -lQt5Sql -lQt5Core -lpthread 

/usr/lib/mysql/libmysqlclient_r.a(my_getsystime.c.o):In function `my_getsystime':

/export/home/pb2/build/sb_0-11763321-1394831461.01/rpm/BUILD/mysql-5.6.17/mysql-5.6.17/mysys/my_getsystime.c:44:undefined reference to `clock_gettime'

/usr/lib/mysql/libmysqlclient_r.a(client_plugin.c.o):In function `do_add_plugin':

/export/home/pb2/build/sb_0-11763321-1394831461.01/rpm/BUILD/mysql-5.6.17/mysql-5.6.17/sql-common/client_plugin.c:179:undefined reference to `dlclose'

/usr/lib/mysql/libmysqlclient_r.a(client_plugin.c.o):In function `mysql_client_plugin_deinit':

/export/home/pb2/build/sb_0-11763321-1394831461.01/rpm/BUILD/mysql-5.6.17/mysql-5.6.17/sql-common/client_plugin.c:306:undefined reference to `dlclose'

/usr/lib/mysql/libmysqlclient_r.a(client_plugin.c.o):In function `mysql_load_plugin_v':

/export/home/pb2/build/sb_0-11763321-1394831461.01/rpm/BUILD/mysql-5.6.17/mysql-5.6.17/sql-common/client_plugin.c:393:undefined reference to `dlopen'

/export/home/pb2/build/sb_0-11763321-1394831461.01/rpm/BUILD/mysql-5.6.17/mysql-5.6.17/sql-common/client_plugin.c:422:undefined reference to `dlsym'

/export/home/pb2/build/sb_0-11763321-1394831461.01/rpm/BUILD/mysql-5.6.17/mysql-5.6.17/sql-common/client_plugin.c:413:undefined reference to `dlerror'

/export/home/pb2/build/sb_0-11763321-1394831461.01/rpm/BUILD/mysql-5.6.17/mysql-5.6.17/sql-common/client_plugin.c:425:undefined reference to `dlclose'

collect2: ld 返回 1

make: *** [../../../../plugins/sqldrivers/libqsqlmysql.so]错误1

 

以上错误解决办法:

第一种:可以在第4步生成的makefile文件中添加LIBS         +=-lpthread -lrt-ldl 就可以编译通过

第二种:qmake"INCLUDEPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql-lmysqlclient_r" mysql.pro LIBS+=-lpthread -lrt-ldl

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值