【发布时间】:2013-02-26 14:21:52
【问题描述】:
这就是我所做的:
我从
更改了一个 .h 文件SomeObj* getCacheObj( int i = 0 );
到
SomeObj* getCacheObj( int i );
SomeObj* getCacheObj();
我重新编译了代码(没有问题),更改到 somelib.so(许多 so 文件之一)。然后我用这个替换了设备上的旧so,加载so时出现以下错误:
undefined symbol: _ZN13KeypathHelper11getCacheObjEv
现在奇怪的是,有人告诉我这个类只在这个 so 文件中使用(我怎样才能确定?)。我没有那么有经验,也不知道如何调查。欢迎提出任何建议。
更新
这个特殊问题是因为另一个so文件正在使用KeypathHelper类而我只替换了包含它的那个。我发现哪些其他需要更新的方法是对 KeypathHelper 进行 grep。
【问题讨论】:
-
你所做的一切都在改变 .h 吗? .cpp 文件没有变化?
-
我当然为新方法添加了一个实现
标签: c++ dynamic-linking shared-libraries name-mangling