QT数据库--添加MySQL驱动插件(ARM篇)

来源:互联网 发布:mac如何重命名文件名 编辑:程序博客网 时间:2024/05/16 18:34

编译环境: Ubuntu 11.04 、QT4.7.2、GCC4.3.2

硬件:ARM9(S3C2440)

1.下载MySQL的源码包 mysql-5.1.70.tar.gz 下载地址:

http://www.mirrorservice.org/sites/ftp.mysql.com/Downloads/MySQL-5.1/

http://download.csdn.net/detail/smallbox00/5816661

一个地址是官方的,一个地址是我上传到CSDN上的。随便选择一个下载就可以了。

2. 解压缩:tar -zxvf mysql-5.1.70.tar.gz

3.在《【原创】QT数据库--添加MySQL驱动插件(Linux篇)》里我已经介绍过了。需要ncurses,所以我们还移植到ARM系统时,这里要多一个ncurses的源码。

4.下载ncurses-5.6.tar.gz

5.#tar -zxvf  ncurses-5.6.tar.gz

6.#./configure –host=arm-linux -prefix=/usr/local/ncurse –enable-static

7.#make

8.#make install

9.如何进入mysql解压后的目录

10.修改configure,找到如下代码,进行修改。


在该文件下找到相关代码,注释掉蓝色部分。该文件中共有4处。千万别缺,否则编译会出错了,找到4处相同的.修改后保存退出。
11.进入到刚才解压的mysql目录下,执行配置指令
# ./configure --host=arm-linux –-enable-static --with-named-curses-libs=/usr/local/ncurses/lib/libncurses.a --prefix=/usr/local/mysql-arm --without-debug --without-docs --without-man --without-bench --with-charset=gb2312 --with-extra-charsets=ascii,latin1,utf8
12.#make
13.这里会出错,这个时候就需要将刚才我们编译好的PC版本的$MYSQL\sql\目录下面的gen_lex_hash,然后cp到现在交叉编译时对应的$MYSQL\sql\目录覆盖即可。
14.然后执行#touch –m sql/gen_lex_hash
15.然后进行编译
16.会提示出现错误sql_parse.cc:××××:21: operator '<' has no left operand  ××××表示该文件的行号,按照这个行号找到后,在此行的上面,添加一个宏定义:#define STACK_DIRECTION 1
17.#make 此时不会出现什么错误了。
18.make install  此时ARM下的MySQL源码已经编译完成。

最后进入到QT MySQL源码插件目录:

#cd /home/qt-embedded-linux-opensource-src-4.5.3/src/plugins/sqldrivers/mysql/

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

#make

注意:这里的qmake记得要用交叉编译器生成的qmake,否则你是X86下的qmake最后会提示各种错误。

编译后会在当前目录下生成一个libqsqlmysql.so文件。将该文件拷贝到嵌入式文件系统中即可。

libmysqlclient_r.so  libmysqlclient_r.so.16  libmysqlclient_r.so.16.0.0

libmysqlclient.so libmysqlclient.so.16 libmysqlclient.so.16.0.0

还需要将这6个文件拷贝到嵌入式文件系统中。


0 0
原创粉丝点击