mysql在AIX平台的编译(32位、64位)

        项目中,需要使用到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)编译过程中,还会遇到如下错误,

libtool: compile:  cc -qlanglvl=ansi -DDEFAULT_CHARSET_HOME=\"/usr/local\" -DMYSQL_DATADIR=\"/usr/local/var\" -DDEFAULT_HOME_ENV=MYSQL_HOME -DDEFAULT_GROUP_SUFFIX_ENV=MYSQL_GROUP_SUFFIX -DDEFAULT_SYSCONFDIR=\"/usr/local/etc\" -DSHAREDIR=\"/usr/local/share/mysql\" -DMYSQL_CLIENT_NO_THREADS -DDONT_USE_RAID -I. -I../include -I../include -I../include -I../zlib -g -DUNIV_AIX -DUNIV_AIX -c -M my_net.c  -DPIC -o .libs/my_net.o
"my_net.c", line 93.5: 1506-068 (S) 不允许在类型“struct hostent*”和“int”之间进行操作。
make:1254-004 上一个命令的错误码是 1。

          则修改源代码,return result即可;

        虽然编译过程和结果不完美,但编译产生的libmysqlclient.so文件,经测试后可用。

         有问题,请及时联系。QQ:1421067726,希望能给你提供帮助。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pony12

助力1000篇OpenDDS文

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值