我只是在寻找一个在线的 objective-c 编译器。目前我只找到ideone.com但它显示任何 Foundation(例如 NSObject
)或 UIKit(例如 UIView
)类的错误。
是否有可以处理 Foundation 和 UIKit 类的 objective-c 在线编译器?如果做不到这一点,我该如何在自己的服务器上自己执行此操作?
编辑:
似乎没有现成的在线编译器。我现在要求如何指导在服务器上构建我自己的在线 objective-c 编译器。
它需要能够获取代码文件、编译它并输出任何错误和警告。它还必须能够通过访问必要的框架来处理 Foundation 和 UIKit 类。
我不懂任何网络开发语言,所以尽可能多的帮助会很棒!
最佳答案
这个问题很有趣,但涵盖的范围确实很广。第一步是准确地研究您要创建的内容:
- 这是您想组合起来供自己使用的东西,还是您尝试为他人生产的东西?后者当然会有前者可能没有的各种顾虑和要求。
- 您是否希望该服务像“在线 Xcode”一样,能够管理文件“项目”并让您测试对单个文件的更改?或者您真的只是想将一堆扁平的文本(一个 .m 文件?)粘贴到一个表单中,然后让服务为您编译它并显示输出结果?
假设您想要一些非常基本的东西(一种可以编译 Obj-C 但编译器可以使用 Foundation 和 UIKit 的形式),您基本上可以:
- 有一个 Web 前端(PHP 可以非常简单地用于此),它会显示一个表单并 POST 提交表单文本。
- PHP 获取代码字符串,在服务器磁盘上生成一个临时 .m 文件
- PHP 使用与标准空 Xcode 项目相同的构建命令将 shell 输出到 gcc。您需要获取所有 iOS SDK 内容并将其放在您的服务器上,以便 GCC 可以访问它。
- 获取 gcc 输出并将其注入(inject)响应页面。
如何使用 PHP,以及如何正确使用 gcc 的东西有点超出了这个问题的范围,并且取决于您对各个组件的熟悉程度。 (正如一位评论者所指出的,对于您可能就 iOS SDK Material 的使用达成的任何协议(protocol),都值得谨慎对待,特别是如果除您之外的任何人都可以使用您的服务。)
关于php - 如何构建在线 Objective-C 编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8040408/