【发布时间】:2019-03-16 15:35:38
【问题描述】:
当我编写一些 Objective-C 源代码时,我可以使用clang -rewrite-objc FILENAME.m 将这段代码翻译成 C++ 源代码。 C++源代码和Objective-C原代码有什么关系?
Objective-C 是 C(但不是 C++)的超集,那么为什么 Objective-C 可以翻译成 C++,而不是 C?在 iOS 或 macOS 上编译、链接和运行 Objective-C 代码时,是先预编译成 C++,然后再链接等等?
【问题讨论】:
-
我在这里找到了 bbum 的答案stackoverflow.com/questions/44561285/…。但我还是很困惑他为什么说
-rewrite-objc使得 Obj-C 可以被 Visual Studio 编译?如果我们使用 Xcode 构建我们的 Obj-C 项目,是否存在-rewrite-objc步骤? -
Apple 有适用于 Windows 的程序。 iTunes 是最知名的。所以我想他的意思是这些程序是在 Windows 的 Visual Studio 中开发的,因此它们可以为 Windows 构建。因此,要在 Visual Studio 构建的 Windows 版本中重用这些程序的 macOS 版本中的代码,他们必须将现有的 Obj-C 代码转换为 C++,以便 VS 可以构建它。
标签: c++ objective-c clang