1

在使用 Core plot API 和 ESRI map Arc GIS API 期间,我面临重复符号问题。在我的应用程序中,我使用的是 Core plot 和 ArcGIS API。为了提供对 64 位设备的支持,我下载了 ArcGI(ESRI 地图)的新 API,并相应地更新了 64 位的 CorePlot API。进行更改后,我面临问题:

错误描述在这里:

duplicate symbol _squareOfDistanceBetweenPoints in:
    /Users/xxxx/Library/SDKs/ArcGIS/iOS/ArcGIS.framework/ArcGIS(AGSCPTUtilities.o)
    /Users/xxxx/Desktop/18 Nov/SCM_iPad/SCM/CorePlot/coreplot_new.a(CPTUtilities.o)
duplicate symbol _niceNum in:
    /Users/xxxx/Library/SDKs/ArcGIS/iOS/ArcGIS.framework/ArcGIS(AGSCPTAxis.o)
    /Users/xxxx/Desktop/18 Nov/SCM_iPad/SCM/CorePlot/coreplot_new.a(CPTAxis.o)
duplicate symbol _CreateRoundedRectPath in:
    /Users/xxxx/Library/SDKs/ArcGIS/iOS/ArcGIS.framework/ArcGIS(AGSCPTPathExtensions.o)
    /Users/xxxx/Desktop/18 Nov/SCM_iPad/SCM/CorePlot/coreplot_new.a(CPTPathExtensions.o)
duplicate symbol _AddRoundedRectPath in:
    /Users/xxxx/Library/SDKs/ArcGIS/iOS/ArcGIS.framework/ArcGIS(AGSCPTPathExtensions.o)
    /Users/xxxx/Desktop/18 Nov/SCM_iPad/SCM/CorePlot/coreplot_new.a(CPTPathExtensions.o)
duplicate symbol _MyCGPathApplierFunc in:
    /Users/xxxx/Library/SDKs/ArcGIS/iOS/ArcGIS.framework/ArcGIS(NSCoderExtensions.o)
    /Users/xxxx/Desktop/18 Nov/SCM_iPad/SCM/CorePlot/coreplot_new.a(NSCoderExtensions.o)
ld: 5 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

如果有人遇到问题,请提出建议。我无法弄清楚这些 API 中的重复内容 之前这两个工作正常(没有 64 位支持的旧 api)

4

2 回答 2

8

您可能导入了 .m 而不是 .h 文件

于 2015-04-22T10:24:21.227 回答
0

您可能在 .H 文件中添加了任何 Typedef 函数,并在许多类中导入了 .H。

就我而言,这是一个问题,

ShadowASettings ShadowSettingsMake(CGSize shadowSize, CGFloat shadowOpacity, CGFloat shadowRadius){
    ShadowASettings settings;
    settings.shadowOffset = shadowSize;
    settings.shadowOpacity = shadowOpacity;
    settings.shadowRadius = shadowRadius;
    return settings;
}

我写了这个函数,ABC.h 然后我导入ANC.h了我的HomeVC.hXYZ.h 所以,然后我简单地将这个函数移动到那个类的 .m 中,因为它只在 .m 中使用

于 2016-07-21T14:09:02.417 回答