我正在尝试按照core-plot方向将these安装到我的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引起的符号问题?
答案 0 :(得分:0)
ARC不能与gcc-llvm一起使用。你有几个选择。您可以将CorePlot单独构建为静态库并将其链接到您的项目中。您甚至可以将CorePlot项目文件嵌入到您的项目中,并将其构建为具有自己的构建配置的依赖项。你也可以将CorePlot切换到clang。一旦我删除了自定义C选项,我就得到了1.0。 ARC很好地集成了非ARC代码。