记一次排查-undefined symbol libiconv_open的问题
问题描述:
开发环境调用某一个库的时候,终端打印:undefined symbol libiconv_open 程序异常退出
排查方案:
第一反应就是 libiconv_open这个函数在动态库test.so(test.so-做脱敏处理),没有定义啊。
1. 在动态库相关的代码目录下找libiconv_open定义的地方
两个命令如下:
> grep libiconv_open *
Binary file test.o matche
grep iconv_open *
这个输出就很奇怪,test.c 里没有libiconv_open,反倒是 test.o里有libiconv_open。
2. 再去看一下test.so里有没有libiconv_open符号。
命令如下
>nm .libs/test.so |grep iconv_open
U libiconv_open
执行结果是