原文链接:https://blog.csdn.net/buknow/article/details/96130049
今天被客户测出来一个问题:程序执行中报错,报错内容如下
XXXX:symbol lookup error:/home/....../libpdfium.so:undefined symbol:CRYPT_MD5Generate
报错分析:
这个问题表明是符号未定义的问题,而且直接定位于产品链接的第三方动态库libpdfium.so中,于是从libpdfium.so中着手。
因为有这个第三方库的源码,给错误的查找提供了可能。
错误定位:
但是这个符号未定义的错误很头疼,因为在我原来的想法中,符号位定义不应该是直接是在编译的时候就应该报错的吗? 所以为了确认,我重新编译了一遍第三方源码,编译时没有报错,生成了新的so,替换进去重新运行,结果也还是会包符号未定义的错误。在网上查找,知道了在链接时链接有误也会造成后期的符号未定义的错误(参考内容见最后)。这块可以通过ldd -r命令查看生成的so是否存在符号未定义的内容。
![](https://i-blog.csdnimg.cn/blog_migrate/9bee6009080130d815d5dbd218914bce.png)