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位源码进行编译即可.
. 附网上的变异步骤:
1. 安装Mysql 和 Qt
安装无需先后,先安装那个都可以, Mysql安装方法, 要选择自定义, 即 Custom, 之后选择文件夹,本人建议是C:\MySQL\, , 必须不能有空格, 因为在命令行下面空格就代表这一段命令结束, 之后就是 一直 next 就行了,
对于.zip版本的MYSQL,直接解压缩到C:\mysql 就可以了
Qt安装要勾选源码选项,有个source什么的的选项 ,一直Next就行了,我的QT路径是C:\Qt, 顺便 把源码解压出来吧,
2.重新编译Mysql驱动
添加环境变量, 当出现"找不到某文件"时,尝试添加MySQL 的lib

在Win7环境下使用Qt编译MySQL驱动时遇到'undefined reference to 'mysql_''错误。该问题可能由于编译64位驱动与64位MySQL源码不匹配引起。解决方案包括:删除qtbasesrcpluginssqldriversmysql下的编译文件,重新下载32位MySQL源码,将MySQL的lib和include目录添加到环境变量,然后在Qt命令行使用qmake和mingw32-make编译驱动。最后,确保生成的.dll文件位于正确路径。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



