编译引用第三方库引起的链接问题

最近在跟供应商联调,我们需要引用 他们的SDK,动态库。

结果出现一个很奇怪的问题,我们在引用他们的库之后,运行出现段错误,出现的原因大概是c++库中的 std::ifstream 这一类导致的,但是当我们在 main函数中 增加一句定义  “std::ifstream f; ”  ,之后,代码就可以正常运行。

排查了大半个月,最终终于有了结果。

我们的代码编译出来是   一个可执行文件  +  一个.so的动态库,

                                       在动态库中会 引用供应商的 多个.so动态库。

我们在写 makefile的时候 先引用了 供应商的库,再引用我们自己的库,就导致了这个问题。

解决办法是 先引用我们自己的库,再引用供应商的库,问题解决。

得出的结论就是:在编译链接动态库的时候,要先链接高级的库,再链接低级的库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值