原创 记一次调用动态库报错的处理过程( undefined symbol)

2021-3-17 14:19 7594 24 24 分类: MCU/ 嵌入式 文集: 低功耗
最近工作在调用其他同事的一个动态库的时候发现有 未识别的错误 特此记录一下

        首先我们用ldd查一下动态库连接是否有问题
       
        可以看到有两个函数处于( undefined symbol),也就是未定义符号 ,其中这个 driver_register 是外部定义的,这个 __DEMO__ 是在这个动态库模块里面定义的 既然如此 找一下他在哪一行 这个红色的U代表"U" The symbol is undefinedundefined的 symbol  这种就是表示 在其他 so动态链接库里面定义的。但是如果你的编译的 是so文件,如果符号不在外部任何so文件里面,默认的配置也不会提示错误。而是编译通过。那个自己忘了定义的符号也在 这  undefined  symbol里面,但是运行时就加载不成功了。
      需要注意的是,如果找不到这个字符,考虑这个可能是一个宏定义,宏定义在编译的时候会被替换成源
常用的指令包括
ldd
        mn
        readelf
        addr2line

作者: Bruce-Woo, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-1850657.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论0条评论)

登录后参与讨论
我要评论
0
24
关闭 站长推荐上一条 /2 下一条