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驱动下边的组件必须安装:

iimysql-client 5.6.17-2 MySQL - Client

iimysql-devel5.6.17-2MySQL - 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

更多相关文章

  1. Linux 常用命令使用英文全称
  2. Linux命令-定时任务命令:crontab
  3. linux常用命令大全(转)
  4. Linux学习第二天-文件系统和简单文件操作命令
  5. Linux下高频命令分类辑录(基本使用篇)
  6. Linux netstat命令详解(转)
  7. linux diff(differential) 命令详解
  8. linux watch——重复执行同一命令
  9. Linux关机和重启命令总结

随机推荐

  1. springMVC使用html视图配置详解
  2. 80端口占用异常解决方法java.net.BindExc
  3. Java中的数据类型
  4. 基于Java的应用程序的GUI测试工具
  5. java.lang.NoSuchMethodException:在strut
  6. jsp中如何使用javabeans,如何使用一个已经
  7. r项目:xlsx包安装失败(由于java问题)
  8. JDK1.5到1.7的进化
  9. Java区分大小写字母数字和符号
  10. JAVAWEB网站开发,一对多,多对一,主表与子表(