您的位置:首页 > 大数据 > 人工智能

curl-7.37.1在AIX上编译失败“cc: 1501-230 内部编译器错误;请与您的服务代表联系”

2015-02-12 17:27 267 查看
因项目需要,在AIX上编译curl-7.37.1,

configure执行ok

make时报错如下

source='progress.c' object='libcurl_la-progress.lo' libtool=yes DEPDIR=.deps depmode=aix /bin/sh ../depcomp /bin/sh ../libtool --tag=CC --mode=compile cc -qlanglvl=ansi -DHAVE_CONFIG_H -I../include/curl -I../include -I../include -I../lib -I../lib -DBUILDING_LIBCURL -qthreaded -qnoansialias -qhalt=e -O2 -c -o libcurl_la-progress.lo `test -f 'progress.c' || echo './'`progress.c

libtool: compile: cc -qlanglvl=ansi -DHAVE_CONFIG_H -I../include/curl -I../include -I../include -I../lib -I../lib -DBUILDING_LIBCURL -qthreaded -qnoansialias -qhalt=e -O2 -c -M progress.c -DPIC -o .libs/libcurl_la-progress.o

cc: 1501-230 内部编译器错误;请与您的服务代表联系

make:1254-004 上一个命令的错误码是 1。


很明显,是编译lib/progress.c文件时,导致终止。
查看progress.c文件(其中花费大约2小时,尝试是哪部分大致失败的),问题出在max5data函数的下面2行代码导致的。

else if(bytes < CURL_OFF_T_C(10000) * ONE_TERABYTE)
/* up to 10000TB, display without decimal: XXXXT */
snprintf(max5, 6, "%4" CURL_FORMAT_CURL_OFF_T "T", bytes/ONE_TERABYTE);

尝试替换等方法都不管用,索性注释掉这几行(实际上,传输T级别的文件基本没有),编译通过。

/*
else if(bytes < CURL_OFF_T_C(10000) * ONE_TERABYTE)
up to 10000TB, display without decimal: XXXXT
snprintf(max5, 6, "%4" CURL_FORMAT_CURL_OFF_T "T", bytes/ONE_TERABYTE);
*/

什么原因,高手们,给个答案,目前我懒得去深究了。

64位动态库编译

1)export OBJECT_MODE=64,设定cc编译环境为64位

2)configure,生成编译配置

3)make,编译生成
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐