Objective-C ARC和Legacy Runtime编译错误

时间:2013-03-05 02:07:08

标签: objective-c xcode compilation compiler-errors clang

我正在尝试使用Xcode 4.6编译源代码,用于32位架构,但是收到此错误:

error: -fobjc-arc is not supported on platforms using the legacy runtime
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1

怎么了?

2 个答案:

答案 0 :(得分:14)

您将ARC(自动引用计数)与较旧的Objective-C 1.0运行时混合,后者不支持ARC。

OSX上的32位应用程序会自动使用1.0运行时,因此您必须为项目禁用ARC,并使用手动引用计数。

答案 1 :(得分:1)

这个问题最近重新出现,因为Xcode 5删除了ARCHS参数 - 如果你允许的话。但是如果你有一个带有Xcode 4的构建服务器,则默认为构建32位和64位,如果启用了ARC则会失败。

有关更详细的说明,请参阅我的writeup