大型嵌入式软件开发,静态库和动态库同时使用,部分.c文件和.c++文件由于bin超大会编译成动态库,在编译链接时无任何错误,但是实际运行时经常发现某些函数符号找不到,由于动态链接库只有可执行程序真正运行时才会加载相关符号表,有经验的大侠有没有好的方法和经验,提供一个好的方法,可以在实际运行前发现相关“编译”错误,急等。
调试动态链接库so文件时若有问题,首先看符号表有没有导出:
nm -C libxxx.so
若符号表有导出:
file libxxx.so
看是stripped还是not stripped
stripped是将程序中的符号表的信息剔除掉了。not stripped则是因为其保留了这些信息,所以便于调试。
若是stripped,换为debug版本即可。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。