编译时出现ARC错误

Posted

技术标签:

【中文标题】编译时出现ARC错误【英文标题】:ARC error when compiling 【发布时间】:2011-08-23 17:09:06 【问题描述】:

我正在尝试使用 LLVM GCC 4.0 编译器进行编译,但在我的多个 .m 文件中出现此错误:ARC forbids explicit message send of 'release' 我尝试使用 -fno-objc-arc 作为编译器标志,但返回错误:无法识别的命令行选项“-fno-objc-arc”。

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

只需删除对-release 的所有调用。您不能在 ARC 下调用 -release,因为编译器会为您插入所有必要的 retain/release 调用。阅读有关 ARC 的更多信息here。

另一种方法是使用转换工具,Xcode 可以为您将您的项目转换为 ARC(包括移除这些调用):

要完全禁用 ARC,请更改构建设置:

不过,我建议您开始使用 ARC,它会让事情变得更容易,实际上也更快。

【讨论】:

有没有办法在 LLVM 编译器中禁用 ARC?当我单击 Convert to Objective-C ARC... 时,它说所有目标都已使用它。【参考方案2】:

如果您碰巧使用的是 ASI (http://allseeing-i.com/ASIHTTPRequest/How-to-use) api,请参考此答案,因为它需要使用 -fno-obj-arc 标志构建特定类...Files doesn't support the ARC feature, how to deal with 并参考答案标题为“为该类禁用 ARC”

【讨论】:

以上是关于编译时出现ARC错误的主要内容,如果未能解决你的问题,请参考以下文章

Kali Linux中,make编译时出现错误怎么解决?

创建线程时出现编译时错误

在 Flutter 中构建 Streams 时出现编译时错误

编译过程时出现oracle错误

编译动态矩阵时出现file.exe错误

在编译c++代码时出现如下错误: 望速度解答,很急。。谢谢!