rollrock1987 2021-10-15 11:01 采纳率: 0%
浏览 6

工程中使用了GPUImage ,加入-ObjC标志后出现 duplicate symbols for architecture arm64 错误

前提:使用GPUImage  来做一些功能,代码全部正常使用

操作:
由于接入其他SDK的需求,需要在 other linker  flags  加入   -ObjC,一加这个标记之后就出现了类似如下的错误


duplicate symbol '_kGPUImageYUVVideoRangeConversionForLAFragmentShaderString' in:
    /Users/zcx/Library/Developer/Xcode/DerivedData/afztteztsopausbgbmbbdkirheyw/Build/Intermediates.noindex/证件水印.build/Debug-iphoneos/证件水印.build/Objects-normal/arm64/GPUImageColorConversion.o
    /Users/zcx/personal/iOS/code/newStart/zhengjianshuiyin/3rd/libGPUImage.a(GPUImageColorConversion.o)
duplicate symbol '_kGPUImageYUVFullRangeConversionForLAFragmentShaderString' in:
    /Users/zcx/Library/Developer/Xcode/DerivedData/afztteztsopausbgbmbbdkirheyw/Build/Intermediates.noindex/证件水印.build/Debug-iphoneos/证件水印.build/Objects-normal/arm64/GPUImageColorConversion.o
    /Users/zcx/personal/iOS/code/newStart/zhengjianshuiyin/3rd/libGPUImage.a(GPUImageColorConversion.o)
duplicate symbol '_kColorConversion601FullRange' in:
    /Users/zcx/Library/Developer/Xcode/DerivedData/afztteztsopausbgbmbbdkirheyw/Build/Intermediates.noindex/证件水印.build/Debug-iphoneos/证件水印.build/Objects-normal/arm64/GPUImageColorConversion.o
    /Users/zcx/personal/iOS/code/newStart/zhengjianshuiyin/3rd/libGPUImage.a(GPUImageColorConversion.o)
duplicate symbol '_kColorConversion709' in:
    /Users/zcx/Library/Developer/Xcode/DerivedData/afztteztsopausbgbmbbdkirheyw/Build/Intermediates.noindex/证件水印.build/Debug-iphoneos/证件水印.build/Objects-normal/arm64/GPUImageColorConversion.o
    /Users/zcx/personal/iOS/code/newStart/zhengjianshuiyin/3rd/libGPUImage.a(GPUImageColorConversion.o)
duplicate symbol '_kColorConversion601' in:
    /Users/zcx/Library/Developer/Xcode/DerivedData/证件水印-afztteztsopausbgbmbbdkirheyw/Build/Intermediates.noindex/证件水印.build/Debug-iphoneos/证件水印.build/Objects-normal/arm64/GPUImageColorConversion.o
    /Users/zcx/personal/iOS/code/newStart/zhengjianshuiyin/证件水印/3rd/libGPUImage.a(GPUImageColorConversion.o)
ld: 1240 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

  • 写回答

1条回答 默认 最新

  • woshizshu 2022-01-26 16:07
    关注

    以这个为例:

    duplicate symbol '_kColorConversion601' in:
    /Users/zcx/Library/Developer/Xcode/DerivedData/证件水印-afztteztsopausbgbmbbdkirheyw/Build/Intermediates.noindex/证件水印.build/Debug-iphoneos/证件水印.build/Objects-normal/arm64/GPUImageColorConversion.o
    /Users/zcx/personal/iOS/code/newStart/zhengjianshuiyin/证件水印/3rd/libGPUImage.a(GPUImageColorConversion.o)

    和是否加入 -ObjC 没有一分钱的关系。

    盲猜,你是把 GPUImage 源码引入到工程中的,但是工程中原来已经有 libGPUImage.a 了,在 证件水印/3rd下面。libGPUImage.a 就是 GPUImage 源码打的一个静态库,所以,相当于你的工程里面同时存在了2份 GPUImage ,符号冲突再正常不过了。

    解决办法:
    只留一份 GPUImage 。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月15日

悬赏问题

  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码