编译自定义函数库报错
ar: not found
make: The error code from the last command is 1.
环境:
AIX 5.2
xlc
oracle10g
tuxedo8.1
检查发现是编译时
执行 make
在链接对象的时候命令行参数过长
ar -X64 rcu libdb_ia.a DB_CommEmpWeb.o DB_LifeUserAttr.o DB_InfoNetCardSale.o DB_LogInfoNetCardSale.o … #LONG ARGS
查看系统参数上限
$ getconf ARG_MAX
24576
但是我们的Makefile文件 不带空格都已经23539 个字符了,导致系统无法成功调用 ar命令
$ wc -c Makefile
23539 Makefile
修改Makfe的思路,不再把所有 .o 文件写在 一个命令中,修改为, 逐行写入一个.o 文件名 至 OBJ_LIST文件,然后读取此文件,逐个打包
同时,Makefile 文件 改为
$(LIB_FILE) :
cat OBJ_LIST|while read line; do ar -X64 rcu $(LIB_FILE) $$line; done
编译完后检查有没有正确的打包文件
ar -vt $(LIB_FILE)