2024年4月8日发(作者:)

(原创)Ubuntu下编译ARM平台QtEmbedded的MySQL和MySQL插件

需要引用的同学请注明文章出处,谢谢

最近需要将一个程序移植到arm平台上,程序调用了MySQL数据库,所以就牵扯

到将MySQL数据库移植到ARM平台上面,所以在网上大量查阅资料。在baidu

文库发现了一篇文档,是wlzxlc上传的文档名称为:《编译ARM平台的

QtEmbedded的MySQL插件和移植MySQL》。下面说明里面介绍到:ARM

平台下的QtEmbedded所需mysql插件,及MySQL的移植。我的整个移植过

程参考了这篇文档,但是遇到了很多的问题,所以又上网搜寻其它资料。现在我

已经移植成功,回头看这篇文档,就发现里面有很多疏漏甚至是错误。这些东西

如果不详细注明出来,更多的新手绝对还会重蹈我的覆辙,所以在这里将mysql

的arm+linux移植经验贴出来,希望对新手以及做相关方面工作的人能有帮助。

所有在《编译ARM平台的QtEmbedded的MySQL插件和移植MySQL》这

篇文档中的错误以及注意事项,我也会一一列出,在下面我将其称为“原文”。

编译器:arm-linux-gcc(4.3.2)

Pc平台:ubuntu

在移植之前有必要先说明一下几个问题:

1.MySQL还没有支持交叉编译的版本出现.但为了让编译继续,必须在

configure脚本中将多处不支持交叉编译的命令全都注释掉,才能让configure

顺利通过。

2.交叉编译过程中需要用到ncurses-5.6下的libncurses.a库,而这个库文件也

必须是arm平台下的,所以我们在交叉编译MySQL时需要先自己手动交叉编译

libncurses.a的库。(原文是说需要.5文件,这里我查阅很多资料

发现,应该是libncurses.a)

3.编译过程中需要运行gen_lex_hash,但这个命令是arm格式的在pc机上运行

不起来,解决方法是要编译好一个在pc上运行的mysql,从相应的目录下拷出

gen_lex_hash覆盖相应目录下的这个arm格式的gen_lex_hash (这里要注意

的是这个pc机上运行的mysql编译路径要和现在这个arm上运行的mysql路

径完全相同,否则后面同样的问题中执行命令时涉及到路径问题,解决办法是先把

现在编译的arm平台的mysql目录改为其他名称,再解一个mysql包改名为

mysql将其编译成pc上运行的版本,只要简单的用./configure |make就行了,

再把pc版本的mysql改为mysql-pc,将原来的那个名称改回mysql即可(貌

似有点晕乎)。

下面就是移植过程,原文使用了出错后讲解的思路,我这里就直接写步骤了,相

当于说明书,方便新手操作。

(1) 准备工作

①下载mysql的tar包,我这里用到的是