首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由于不同so's中存在相同的文件名/类名而导致seg错误

由于不同so's中存在相同的文件名/类名而导致seg错误
EN

Stack Overflow用户
提问于 2019-12-08 10:53:42
回答 1查看 62关注 0票数 0

我会尽力解释的。

BaseModule.so有

  • core.h,类名为core。implementation
  • access1.cpp是从core
  • access2.cpp派生自核心

模组1.所以

class

  • ModHelper.cpp为Mod1类

  • 核心提供值,h core.cpp有一个名为core的类,用于帮助ModHelper计算值(函数签名与基本模块中的核心类非常类似,implementation)

中有一些变化)

Module2.so

and /h具有class

  • ModCalculator.cpp /h的声明和实现,用于帮助计算class

  • ModCalculator.cpp/h的值,class

  • ModCalculator使用来自BaseModule

的access1 access2对象

当三个模块都加载时,段故障

在模块2中,我发现模块2中的access1类是使用来自Mod1的core.cpp函数,而不是使用来自BaseModule的函数

它不应该使用来自BaseModule的core.cpp函数,因为它们是不同的,因此也是不同的?

我只能修改模块一如何解决这个问题,如何防止将来发生这样的事情..

Linux中的编译器gcc我们正在添加模块…不要触及BaseMod函数。

EN

回答 1

Stack Overflow用户

发布于 2019-12-09 04:48:46

最后找到了解决上述问题的方法。

问题是..。Module1.so的makefile引用了BaseModule库,因此,当下一个so (Module2)试图访问BaseModule引用时,核心中的函数( core.cpp )将被模块1.so中的core.cpp函数覆盖。

修改makefile (删除对BaseModule的库引用)解决了我的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59234671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档