一个so库中全局变量未定义引起的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个so库中全局变量未定义引起的问题相关的知识,希望对你有一定的参考价值。

libspero.so库中,先是在a.cpp中定义了全局变量m; 在b.cpp中使用extern int m;后使用,后来删了a.cpp中m的定义,忘记删除b.cpp中m的使用了,结果libspero.so编译没有任何报警,运行后总是crash,跟踪后发先GOT表项中保存的值是非法内存访问区! 这个报错表面上看起来跟b.cpp没有任何关系,调了一天,巨坑巨坑!


以上是关于一个so库中全局变量未定义引起的问题的主要内容,如果未能解决你的问题,请参考以下文章

C++ 静态库中的共享全局变量

C++ 静态库中的共享全局变量:Linux

是共享库/dll中的全局变量,跨进程共享

惊讶于全局变量在 JavaScript 中具有未定义的值

POSTMAN 错误:未解析变量:“此变量未在活动集合、环境或全局变量中定义。”

C 语言能不能在头文件定义全局变量?