【问题标题】:Can clang or gcc convert Objective C code into plain C?clang 或 gcc 可以将 Objective C 代码转换为纯 C 吗?
【发布时间】:2014-01-29 22:28:03
【问题描述】:

我想将 Objective C 代码转换为纯 C。我可以很容易地手动完成。例如这个 Objective C 代码:

[object method];

可以转换为:

SEL method = sel_registerName("method");
objc_msgSend(object, method);

但是,这有点乏味,尤其是对于较大的文件。似乎 clang 应该能够很容易地生成这个 C 代码。有没有办法说服它这样做?

【问题讨论】:

  • 您需要这样做的原因是什么?可能还有另一种不涉及通过 C 语言中间的方式
  • @MMavipc 如果有其他方法,那就太好了,但我怀疑是否存在。我需要这个,因为我想把一些可可的东西放到 Java 中,而 C 代码几乎与我想要的 Java 代码相同。
  • 您需要实际的 java 源代码,还是需要 java 字节码?
  • 我想我需要实际的来源进行一些修改,但我想知道你在想什么......
  • 我想你到底是什么JNAerator。 Clang 不会这样做。

标签: objective-c c gcc clang


【解决方案1】:

简短回答:不。

更长的答案:clang 支持-rewrite-objc,但您几乎肯定不会喜欢结果。

【讨论】:

  • 你说得对,我不喜欢这个结果,但总比没有好。谢谢。
  • 您知道是否有任何方法可以在没有所有冗余转换的情况下生成此代码?
  • 我对此表示怀疑。当输出提供给 C++ 编译器时,IIRC 强制转换不是多余的。
猜你喜欢
  • 1970-01-01
  • 2011-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多