Win7下Qt 5.4/5.5版本 编译MYSQL驱动 undefined reference to 'mysql_'
2015-08-27 11:23
369 查看
QT编译MySQL驱动的时候遇到如下问题, /tmp/cchl7IEh.o: In function `main':test.c:(.text+0x22): undefined reference to `mysql_init'test.c:(.text+0x4f): undefined reference to `mysql_real_connect'test.c:(.text+0x65): undefined reference to `mysql_query'test.c:(.text+0x76): undefined reference to `mysql_store_result'test.c:(.text+0x87): undefined reference to `mysql_num_rows'安装了64位win7的用户,在编译MYSQL驱动时如果下载的是MYSQL 64位的源码,就会出现 undefined reference to 'mysql_' 问题. 删除C:\Qt5\5.5\Src\qtbase\src\plugins\sqldrivers\mysql 目录下之前编译生成的文件和文件夹(保留.cpp/.json/.pro文件), 重新下载MYSQL 32位源码进行编译即可.. 附网上的变异步骤:
输入 cd C:\qt-everywhere-opensource-src-5.4.0\qtbase\src\plugins\sqldrivers\mysql\ 进到这个文件夹里面,输入 qmake "INCLUDEPATH+=C:\MySQL\include" "LIBS+=C:\MySQL\lib\libmysql.lib" -o Makefile mysql.pro 生成makefile ,路经不能包含空格.mingw32-make 进行编译 .
1. 安装Mysql 和 Qt
安装无需先后,先安装那个都可以, Mysql安装方法, 要选择自定义, 即 Custom, 之后选择文件夹,本人建议是C:\MySQL\, , 必须不能有空格, 因为在命令行下面空格就代表这一段命令结束, 之后就是 一直 next 就行了,对于.zip版本的MYSQL,直接解压缩到C:\mysql 就可以了Qt安装要勾选源码选项,有个source什么的的选项 ,一直Next就行了,我的QT路径是C:\Qt, 顺便 把源码解压出来吧,2.重新编译Mysql驱动
添加环境变量, 当出现"找不到某文件"时,尝试添加MySQL 的lib和include目录到环境变量中.打开 Qt 的命令行终端,点击开始菜单,Q5.4.0t,见下图![](http://www.it165.net/uploadfile/files/2015/0208/20150208190651690.png)
3.重新配置MySQL驱动
注意生成的 .dll文件在 qtbase \ plugins \ sqldrivers文件夹下1.将 C:\%QT目录%
\qtbase\plugins\sqldrivers 文件夹下面的 qsqlmysql.dll 和 qsqlmysqld.dll 复制到
C:\%QT目录%\Qt5.
4.0
\
5.4
\mingw491_32\plugins\sqldrivers.
如果此时还连接不上数据库,
将C:\MySQL\MySQLServer5.
5
\lib\libmysql.dll 复制到 C:\Windows
尝试重新build项目,到此基本都能成功.
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜
- MySQL 备份与恢复