使用多个静态库在连接时出现大量函数未定义

         今天编译公司内别人的写的程序,该程序原先是运行在AIX上的,目前没有AIX系统,所以我只好先用linux尝试编译,修改了makefile以后,开始编译。

        该程序使用了大量的静态库,这些库就害我寻找并编译了半天,终于到了最后一步连接了,出现了大量函数未定义的错误,我网上查了下是因为静态库的依赖性的问题,于是我调整了顺序,将.o文件放在lib前面,这点似乎无关紧要,我仔细看了错误发现,这些未定义函数的错误原来都是在lib库里边,首先我就发现大量LOG日志记录的函数未定义错误,我就把log的静态库放在所有库的前面,日志函数未定义的错误一下就全消失了,但是还有其他一些错误,我依照此方法,找函数的具体依赖:

         lib1.a引用了lib2.a,但是在makefile中lib2.a确实在lib1.a前面呀,为什么总是不行呢,我又网上查,有人说lib库可以出现多次,于是我把lib2.a在lib1.a的前面和后面都放了一次,果然错误消失了,我又把前面的lib2 删除,也没有问题,编译确实通过了。

         最后我还是在纳闷这是为什么呢。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值