amazzzzzing

导航

记一次因为库符号冲突引起的程序崩溃问题

记一次因为库符号冲突引起的程序崩溃问题

环境

使用了来自第三方的库,在使用提供的头文件编译内部协议库之后,出现了崩溃问题。

解决

  1. 尝试调整库的连接顺序

连接的过程是向后查找,也即对于没有找到的符号再向后续连接的库查找。因此如果两个库有同一个符号,则最终使用的符号对应代码可能就不一致(多个库存在相同的符号(T))。

  1. 找出库的不一致问题

可以尝试不断挪动库的顺序(新引入的库和已有的库),直到某一次相邻的挪动引起了变化(崩溃或者不崩溃),那么这两个库一定是存在符号的异常。

  1. 找出库的相同符号

通过 nm 指令列出所有的符号,并找出 T 符号,然后排序,对比即可。

posted on 2021-04-14 23:43  amazzzzzing  阅读(138)  评论(0)    收藏  举报