天天看点

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

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

本文转自 zhegaozhouji 51CTO博客,原文链接:http://blog.51cto.com/1038741/1947292

继续阅读