项目中,需要使用到mysql的动态链接库,如libmysqlclient.so文件,而手头又没有现成的库(网络搜集了也没找到),索性自己来编译。(网络下载的mysql-connector-c-6.0.1-aix5.3-powerpc-32bit.tar.gz和mysql-connector-c-6.0.1-aix5.3-powerpc-64bit.tar.gz文件不可用,总是报告格式有问题,不知道是否和芯片相关)
下面,言归正传,
1】首先,拿到MySQL的源代码,
http://download.csdn.net/download/xjp342023125/3760184
2】 上传到AIX后,进行编译
1)解压文件gunzip mysql-5.1.59.tar.gz
2)解包文件 tar xvf mysql-5.1.59.tar
3)执行configure,产生编译脚本如Makefile文件等
4)make执行,进行编译
如果make没有问题,在直接找到libmysqlclient.so.16即可使用。
3】可能遇到的问题,及处理办法
1)g++编译器不存在等问题,如何编译出libmysqlclient.so呢?请见下文
但由于机器上没有安装g++编译器,导致出现
source='my_new.cc' object='my_new.o' libtool=no DEPDIR=.deps depmode=none /bin/sh ../depcomp g++ -DDEFAULT_BASEDIR=\"/usr/local\" -DMYSQL_DATADIR="\"/usr/local/var\"" -DDEFAULT_CHARSET_HOME="\"/usr/local\"" -DSHAREDIR="\"/usr/local/share/mysql\"" -DDEFAULT_HOME_ENV=MYSQL_HOME -DDEFAULT_GROUP_SUFFIX_ENV=MYSQL_GROUP_SUFFIX -DDEFAULT_SYSCONFDIR="\"/usr/local/etc\"" -DHAVE_CONFIG_H -I. -I../include -I../zlib -I../include -I../include -I. -O -c -o my_new.o my_new.cc
../depcomp[571]: g++: 找不到。
make:1254-004 上一个命令的错误码是 127。
(如上环境中,编译的动态链接库为32位的。如果要产生64位的动态库,则首先需要设置export OBJECT_MODE=64,设定cc编译环境为64位后进行编译,或参照http://blog.csdn.net/pony12/article/details/43764803)
则需要修改Makefile文件,剔除不必要的编译模块mysys、dbug、extra、storage、plugin、unittest、man、tests、mysql-teset、server-tools后,make仍然出错,但libmysqlclient.so.16编译已经完成,变名为libmysqlclient.so即可使用了。
2)编译过程中,还会遇到如下错误,
则修改源代码,return result即可;
虽然编译过程和结果不完美,但编译产生的libmysqlclient.so文件,经测试后可用。
有问题,请及时联系。QQ:1421067726,希望能给你提供帮助。