GCC4生成动态链接库,无法链接问题

        近日编译一动态链接库,又长了一点见识。

        动态库生成的过程是顺利的,但应用程序无论如何都无法使用该动态库。每每链接时,便报错"undefined reference to ......",开始我一直以为是缺少头文件,或链接时没有找到动态库的原因 。但仔细排查,除开了这种可能。代码本身也没有问题,因为生成静态库的时候,一切正常,唯独链接生成的动态库,总是报错。

      偶然中发现makefile中CFLAGS参数中有-fvisibility=hidden -fvisibility-inlines-hidden一段,于是查了资料,顿时如梦方醒。这两个参数的作用是为了减小共享库的体积,提高执行效率而设定的。但其会将部分符号隐藏,以致在链接阶段,外部程序无法找到对应要链接的符号,从而报错

这个特性是gcc4中才具备的,今天偶然遇上,了解了一把

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值