今天在Xcode编译时遇到Redefinition of 'GPBWellKnownTypesErrorCode'的报错(图1),按经验Redifinition of错误是重复定义问题,只要删除重复的文件即可。但是切换到项目所在文件夹,始终无法找到同名类文件,以至于一筹莫展。考虑到报错的文件是集成的Protobuf第三方库文件,于是通过cocoapods的pod install先修改Podfile然后pod install重新添加第三方库来修复,但是始终无法解决问题。后来安静下来仔细对比编译报错前后的改动,发现先后引用的两个头文件中,第二个头文件已经引用了第一个(图2、图3),恍然大悟。其中第一个头文件是Protobuf库的文件,来自github,第二个头文件是后台协议的同事所提供,本着对其中api调用比较有把握的自信,就没有关注其所引用的文件内容,导致了这个眼皮底下的失误,耽误了大半天。总结一下,也是提醒以后引入外部文件时要多加点注意,遇到报错时紧抓问题本质分析解决。
图1 图2 图3
网友评论