戴上你的c ++忍者伏都教手套。
我们购买了第三方库,可在我们的iOS应用中使用。该库有2个版本,因此我们称之为bull_frog_noises.a
和toad_frog_noises.a
。
该公司从未想过有人会想在单个应用中发现两种青蛙噪音,因此每个库都提供相同的方法名称 :
MAKE_FROG_NOISE();
有没有办法重建或修改这些库,以便它们可以在不相互碰撞的情况下使用?这是理想的状态:
MAKE_BULL_FROG_NOISE();
MAKE_TOAD_FROG_NOISE();
答案 0 :(得分:4)
我会尝试使用十六进制编辑器手动修改其中一个库,以便MAKE_FROG_NOISE的每个实例都替换为MAKE_TOAD_NOISE。你必须非常小心,只做一次改变。您只能替换字节。不要插入或删除任何内容。并且不要更改文件中的任何其他内容。
答案 1 :(得分:3)
您可以使用所需的方法名称构建另一个静态库作为这些库的包装,然后在项目中包含包装器库。
像这样:1 - 创建一个名为bull_frog_noises_wrapper.a的新静态库项目。
2 - 包括bull_frog_noises.a作为对这个新创建的库的依赖。
3 - 创建这样的方法:
void MAKE_BULL_FROG_NOISE()
{
MAKE_FROG_NOISE();
}
4 - 为toad_frog_noises.a做同样的事情,创建如下方法:
void MAKE_TOAD_FROG_NOISE()
{
MAKE_FROG_NOISE();
}
5 - 在项目中添加这些包装,然后就完成了。
请注意您在主项目中使用的头文件,以免它们与内部库冲突。
希望它有所帮助。