开发者社区> 问答> 正文

linux下so动态链接库找不到函数符号问题

大型嵌入式软件开发,静态库和动态库同时使用,部分.c文件和.c++文件由于bin超大会编译成动态库,在编译链接时无任何错误,但是实际运行时经常发现某些函数符号找不到,由于动态链接库只有可执行程序真正运行时才会加载相关符号表,有经验的大侠有没有好的方法和经验,提供一个好的方法,可以在实际运行前发现相关“编译”错误,急等。

展开
收起
云栖技术 2016-06-06 09:36:22 10373 0
1 条回答
写回答
取消 提交回答
  • 社区爱好者,专为云栖社区服务!

    调试动态链接库so文件时若有问题,首先看符号表有没有导出:

    nm -C libxxx.so

    若符号表有导出:

    file libxxx.so

    看是stripped还是not stripped

    stripped是将程序中的符号表的信息剔除掉了。not stripped则是因为其保留了这些信息,所以便于调试。

    若是stripped,换为debug版本即可。

    2019-07-17 19:27:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Alibaba Cloud Linux 3 发布 立即下载
ECS系统指南之Linux系统诊断 立即下载
ECS运维指南 之 Linux系统诊断 立即下载