【问题标题】:Errors in linking during build with Core Plot在使用 Core Plot 构建期间链接错误
【发布时间】:2009-09-04 04:31:32
【问题描述】:

我刚刚根据教程 (http://www.switchonthecode.com/tutorials/using-core-plot-in-an-iphone-application) 在我的应用程序中添加了一个 Core Plot 视图。我已将 Core Plot 绘图代码放在包含 CPLayerHostingView 的窗口的窗口控制器的 windowDidLoad 方法中。该图的代码是:

CPXYPlotSpace *plotSpace = (CPXYPlotSpace *)graph.defaultPlotSpace;
plotSpace.xRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromFloat(-6) 
                                               length:CPDecimalFromFloat(12)];
plotSpace.yRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromFloat(-5) 
                                               length:CPDecimalFromFloat(30)];

CPXYAxisSet *axisSet = (CPXYAxisSet *)graph.axisSet;

CPLineStyle *lineStyle = [CPLineStyle lineStyle];
lineStyle.lineColor = [CPColor blackColor];
lineStyle.lineWidth = 2.0f;

axisSet.xAxis.majorIntervalLength = [[NSDecimalNumber decimalNumberWithString:@"5"] decimalValue];  
axisSet.xAxis.minorTicksPerInterval = 4;
axisSet.xAxis.minorTicksPerInterval = 4;
axisSet.xAxis.majorTickLineStyle = lineStyle;
axisSet.xAxis.minorTickLineStyle = lineStyle;
axisSet.xAxis.axisLineStyle = lineStyle;
axisSet.xAxis.minorTickLength = 5.0f;
axisSet.xAxis.majorTickLength = 7.0f;
axisSet.xAxis.axisLabelOffset = 3.0f;

axisSet.yAxis.majorIntervalLength = [[NSDecimalNumber decimalNumberWithString:@"5"] decimalValue];  
axisSet.yAxis.minorTicksPerInterval = 4;
axisSet.yAxis.minorTicksPerInterval = 4;
axisSet.yAxis.majorTickLineStyle = lineStyle;
axisSet.yAxis.minorTickLineStyle = lineStyle;
axisSet.yAxis.axisLineStyle = lineStyle;
axisSet.yAxis.minorTickLength = 5.0f;
axisSet.yAxis.majorTickLength = 7.0f;
axisSet.yAxis.axisLabelOffset = 3.0f;

CPScatterPlot *xSquaredPlot = [[[CPScatterPlot alloc] 
                                initWithFrame:graph.defaultPlotSpace.bounds] autorelease];
xSquaredPlot.identifier = @"X Squared Plot";
xSquaredPlot.dataLineStyle.lineWidth = 1.0f;
xSquaredPlot.dataLineStyle.lineColor = [CPColor redColor];
xSquaredPlot.dataSource = self;
[graph addPlot:xSquaredPlot];

构建时出现以下错误:

“.objc_class_name_CPPlotRange”,引用自: HistogramWindowController.o 中的文字指针@__OBJC@__cls_refs@CPPlotRange

“_CPDecimalFromFloat”,引用自: - [HistogramWindowController windowDidLoad] 在 HistogramWindowController.o - [HistogramWindowController windowDidLoad] 在 HistogramWindowController.o - [HistogramWindowController windowDidLoad] 在 HistogramWindowController.o -HistogramWindowController.o中的[HistogramWindowController windowDidLoad]

“.objc_class_name_CPLineStyle”,引用自: HistogramWindowController.o 中的文字指针@__OBJC@__cls_refs@CPLineStyle

“.objc_class_name_CPXYGraph”,引用自: HistogramWindowController.o 中的literal-pointer@__OBJC@__cls_refs@CPXYGraph

“.objc_class_name_CPScatterPlot”,引用自: HistogramWindowController.o 中的literal-pointer@__OBJC@__cls_refs@CPScatterPlot

“.objc_class_name_CPPlotSymbol”,引用自: HistogramWindowController.o 中的literal-pointer@__OBJC@__cls_refs@CPPlotSymbol

“.objc_class_name_CPColor”,引用自: HistogramWindowController.o 中的文字指针@__OBJC@__cls_refs@CPColor

“.objc_class_name_CPFill”,引用自: 文字指针@__OBJC@__cls_refs@CPFill in HistogramWindowController.o

ld: 未找到符号 collect2: ld 返回 1 个退出状态

我从未遇到过这样的错误。任何人都可以阐明问题可能是什么?

干杯

【问题讨论】:

    标签: cocoa xcode linker core-plot


    【解决方案1】:

    这意味着您没有正确链接到框架中。您可能刚刚将框架添加到您的项目中,#imported 标头,但忘记确保框架实际上已链接到您的目标。

    【讨论】:

    • 在我从 SVN 检查我的项目以恢复后,我发生了一件非常相似的事情,它显然错过了我的几个课程。重新添加它们可以解决问题。
    【解决方案2】:

    this wiki page 上有一些关于将框架整合到 Mac 项目中的说明。如果您遵循这些,您应该能够避免框架中的链接出现任何问题。

    【讨论】:

      【解决方案3】:

      我遇到了完全相同的链接错误。对我来说,问题是我试图在模拟器中运行我的应用程序。我不知道我是否在某处遗漏了什么,但我只能在设备上运行。一旦我开始这样做,没有链接错误。

      【讨论】:

        【解决方案4】:

        您还可以检查您的应用程序目标是否设置为包括 64 位支持以及框架是否具有此类支持(使用 file(1) 后面部分的命令)。如果您正在构建支持 64 位的应用,但尝试链接不支持 64 位的框架,则链接器在尝试链接应用的 64 位部分时会抛出类似的错误,而 32 位部分将成功。

        【讨论】:

        • 默认情况下,框架应该编译一个 32/64 位通用目标,但你是对的,这是值得关注的。
        【解决方案5】:

        确保您也添加了 QuarzCore 框架。这修复了我的链接错误。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-02-26
          • 1970-01-01
          • 2021-04-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-20
          • 1970-01-01
          相关资源
          最近更新 更多