日期:2014-05-16  浏览次数:20810 次

可执行程序加载动态库 和 动态库加载动态库 的动态库初始化的问题
各位好:
  linux下一个动态库A,其中应该是有一些全局变量的。
  通过一个可执行程序加载动态库A(dlopen),这个没问题。用另外一个可执行程序加载动态库B,再由B加载A,B中调用方法与前可执行程序相同,这个就出问题了。调试查看调用栈,发现如下:

... _init -> __do_global_ctors_aux -> global constructors keyed to XXX(A中某类的构造函数)... ( -> 表示调用)
望高手解答原因,解决方法,越详细越好。谢谢!

------解决方案--------------------
名称冲突试试函数指针?
------解决方案--------------------
具体什么问题呢?内存非法访问?
最后出问题的地址是在A中某类的构造函数中吗?
最好把相关代码和完整的stack trace贴出来