当第三方 SDK中的库与自己项目中的库起冲突时!

使用了阿里系某趣 SDK 其中的 GPUImage 与 自己项目中的 GPUImage 库发生冲突,导致大量duplicate symbol 报错(即重复了)

解决思路有两个

1.去除一个

(1)如果是 .a 文件 可以把引用的第三方.a解开,把冲突的.o都干掉 ; 奈何某趣 SDK(1.0.1) .a 还混淆了 ,有熟悉的小伙伴可以给我留言

(2)加入一个链接符号,让编译链接不冲突 ,这个方法比较 hack 应该是可行的 ,即在  Other C Flags 中改写 重复符号的名字 使之不重复;但是我没能实现 -_- ,不过思路应该是正确的,求教实现的小伙伴

资料 http://atastypixel.com/blog/avoiding-duplicate-symbol-issues-when-using-common-utilities-within-a-static-library/

2.改写一个

不是什么黑科技,乖乖把 GPUImage 从 pods 中拉出来 直接源码导入到工程中,然后开始手动改代码吧 (你在逗我么 3k多个重复类名!!!!)

后来 用 Python 写了段改名的代码 (Python 大发好):

 

 

不仅类名可能重复,C 或者 shader 的定义也会重复。

 

 

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.