关于G++库链接的一个问题

        我们的项目是按模块开发的,所以需要在生成可执行文件时将所有的模块都链接起来,我想这个是每个程序员都知道的事情,不管是在WINDOWS下,还是在LINUX下都不例外。

        但今天在做项目的时候,遇到一个GCC链接的一个问题,这个问题让人感觉很怪异,感觉是G++的一个BUG:我写了两个库A和B,其中B用到了A库,而生成可执行文件的项目C同时用到了A和B,当然,我在链接的时候都是加上了A和B库,而且也正确设置了库A与库B的路径,但是就是链接不成功,G++总是不能链接到库B引用库A的函数,这让我感到很纳闷。后来我想会不会是链接顺序的问题,以前可从来没有遇到过这种问题,出问题的链接顺序是将A置于前,B置于后;于是我将B置于前,A置于后,编译链接就成功了。

        即此,感觉G++在这链接顺序上就没有VC的链接器做得人性化了。我想G++之所以会出现这样的问题,是因为当链接器链接到B的时候,所有库都已经链接了,但发现还有一些函数找不到实现,所以会报链接错误;而当顺序设置为B前A后时,链接器链接到B的时候找不到的那些函数可以在这后的A库中找到,所以正确。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值