0

我正在尝试按照这些说明将core-plot安装到我的 iPhone 项目中。Coreplot 要求我使用 LLVM gcc 4.2 编译器,这会导致符号问题。

因为我使用的是 LLVM gcc 4.2,所以 @autorelease 表示法会在 main.m 中产生错误“'@' token 之前的预期表达式”。

int main(int argc, char *argv[]) {
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }

}

因此,我摆脱了 @autoreleasepool 符号并将 main 更改为如下所示。

int main(int argc, char *argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    [pool release];
    return retVal;
}

但是,由于我使用的是 ARC,因此这给出了“NSAutoreleasePool 不可用”错误。所以我将 -fno-objc-arc 编译器标志添加到 main.m,这给了我和“无法识别的命令行选项”-fno-objc-arc“错误。

有没有办法解决在我的项目中使用 ARC 时使用 LLVC gcc 4.2 引起的符号问题?

4

1 回答 1

0

ARC 不能与 gcc-llvm 一起使用。你有几个选择。您可以将 CorePlot 单独构建为静态库并将其链接到您的项目中。您甚至可以将 CorePlot 项目文件嵌入到您的文件中,并将其构建为具有自己构建配置的依赖项。您也可以将 CorePlot 切换到 clang。删除自定义 C 选项后,我得到了 1.0 版本。ARC 可以很好地与非 ARC 代码集成。

于 2012-06-07T20:40:59.527 回答