集成第三方SDK时候遇到了clang: error: linker command failed with exit code 1 (use -v to see invocation)
错误,在网上也找了好多资料,遇到的问题和我的不一样。
这是我项目遇到的错误:
这是用双指按触摸板,会弹出如下提示(选择Reveal in Log 选项):
会进入到错误的详细内容,如下:
注意错误的上一句话:
duplicate symbols for architecture x86_64
(译:在x86_64体系下有重复的符号)
大白话:你的项目里有重复的文件名
还有一些这样问题链接
在我反复确认下,是这个新导入第三方SDK与我项目中已存在的SDK 的文件冲突了,上图中得部分文件也能清楚的确认是AlipaySDK
这个SDK与我新集成的SDK中得UTDID
文件冲突了,在与第三方开发确认后删除了冲突的UTDID
包,至此程序可以正常的运行了!
结语:正常开发中也可能遇到这样的问题,有的是一些第三方SDK 引入其他类的时候没有修改类名导致,在我们自己设计第三方SDK 给别人用的时候,一定要对引入的类都加入我们的类前缀,这样别人在使用的时候冲突的可能性会大大的减小。