记一次因为库符号冲突引起的程序崩溃问题
记一次因为库符号冲突引起的程序崩溃问题
环境
使用了来自第三方的库,在使用提供的头文件编译内部协议库之后,出现了崩溃问题。
解决
- 尝试调整库的连接顺序
连接的过程是向后查找,也即对于没有找到的符号再向后续连接的库查找。因此如果两个库有同一个符号,则最终使用的符号对应代码可能就不一致(多个库存在相同的符号(T))。
- 找出库的不一致问题
可以尝试不断挪动库的顺序(新引入的库和已有的库),直到某一次相邻的挪动引起了变化(崩溃或者不崩溃),那么这两个库一定是存在符号的异常。
- 找出库的相同符号
通过 nm 指令列出所有的符号,并找出 T 符号,然后排序,对比即可。
posted on 2021-04-14 23:43 amazzzzzing 阅读(138) 评论(0) 收藏 举报
浙公网安备 33010602011771号