您的位置:首页 > 其它

不同模块命名相同导致的程序崩溃问题

2014-09-04 15:42 92 查看
最近帮同事调试程序发现的一个问题:

底层所用的so里包含了一个类的调用,名称叫Config,用于读取config文件进行程序配置,而他的调用此so的测试程序里也声明了一个全局的这个类的对象,可是这个类的实现却与so的底层不相同,在执行过程中,他的外层函数的config可以正确执行, 但是进入该so库函数以后,此类的调用出现segment fault。

发现去掉外层config类以后,程序能够执行起来。因此可以推断是这两个同名的类在程序链接的时候出现了合并导致了错误。

解决方案:

1.将外层的类进行改名

2.给外层的类加命名空间(没试过)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: