由于相同的文件名/类名存在不同的段错误

问题描述 投票:0回答:1

我将尽力解释。

BaseModule.so具有

  • core.h,其类名为core。 core.cpp有实现
  • 从核心派生的access1.cpp
  • 从核心派生的access2.cpp

Module1.so具有

  • Mod1.cpp / h具有Mod1类的声明和实现
  • ModHelper.cpp为Mod1类提供值
  • core.h core.cpp有一个名为core的类,可帮助ModHelper计算值(功能签名与Base模块中的core类非常相似,但实现方面有所变化)

Module2.so

  • Mod2.cpp / h具有Mod2类的声明和实现
  • ModCalculator.cpp / h帮助计算Mod2类的值
  • ModCalculator使用来自BaseModule的access1 access2对象

[Segment fault当所有三个模块都已加载时

[模块2的段故障,我发现模块2中的access1类正在使用Mod1.so中的core.cpp函数,而不是使用BaseModule中的那些]]

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

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

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

我将尽力解释。 BaseModule.so具有名为core的类的core.h。 core.cpp具有派生自内核Module1.so的内核access2.cpp的实现access1.cpp,具有Mod1.cpp / ...

c++ linux object shared
1个回答
0
投票

终于找到了解决上述问题的方法。

© www.soinside.com 2019 - 2024. All rights reserved.