【问题标题】:How to build an Online Objective-C Compiler如何构建在线 Objective-C 编译器
【发布时间】:2011-11-07 17:45:25
【问题描述】:

我只是在寻找一个在线的objective-c 编译器。目前我只找到ideone.com,但它显示任何Foundation(例如NSObject)或UIKit(例如UIView)类的错误。

是否有可以处理 Foundation 和 UIKit 类的 Objective-c 在线编译器?如果做不到这一点,我怎么能在自己的服务器上自己做呢?


编辑:

似乎没有现成的在线编译器。我现在要求如何指导在服务器上构建我自己的在线objective-c 编译器。

它需要能够获取一个代码文件,对其进行编译并输出任何错误和警告。它还必须能够通过访问必要的框架来处理 Foundation 和 UIKit 类。

我不懂任何网络开发语言,所以尽可能多的帮助会很棒!

【问题讨论】:

  • 为什么需要这个?你想实现什么目标?
  • 我希望能够在旅途中在 iPad 上编译代码以检查错误或警告。
  • 您最好在尝试之前仔细阅读 Apple 开发者协议的条款。
  • 一个很酷的想法,但我怀疑没有像这样框架的很好的解决方案。我建议您使用其中一款可以让您在家中与 Mac 共享屏幕的应用程序,或者只买一台 MacBook Air(这些家伙太小了!)。
  • @Caleb 不是为了应用程序,只是为了在互联网上编译代码。

标签: php objective-c compiler-construction online-compilation


【解决方案1】:

这个问题很有趣,但涵盖的范围确实很广。第一步是准确了解您要创建的内容:

  • 这是您想组合起来供自己使用的东西,还是您想为他人制作的东西?后者当然会有各种各样的关注和要求,而前者可能没有。
  • 您是否希望该服务像“在线 Xcode”一样,能够管理文件的“项目”并让您测试对单个文件的更改?还是您真的只是想将一堆扁平的文本(.m 文件?)粘贴到表单中,让服务为您编译并显示输出?

假设您想要一些非常基本的东西(一种可以编译 Obj-C 但编译器可以使用 Foundation 和 UIKit 的表单),您基本上会:

  • 有一个 Web 前端(PHP 可以很简单地用于此),它会显示一个表单并 POST 表单文本的提交。
  • PHP 获取代码字符串,在服务器磁盘上生成一个临时 .m 文件
  • PHP 使用与标准空 Xcode 项目相同的构建命令向 gcc 发送 shell。您需要获取所有 iOS SDK 内容并将其放在您的服务器上,以便 GCC 可以访问它。
  • 获取 gcc 输出并将其注入响应页面。

如何使用 PHP 以及如何正确使用 gcc 有点超出了这个问题的范围,并且取决于您对各个组件的熟悉程度。 (正如评论者所指出的,对于您可能就 iOS SDK 材料的使用达成的任何协议,尤其是,如果您之外的任何人都可以使用您的服务,则值得小心谨慎。) p>

【讨论】:

  • 回答您的问题。这是我自己使用的东西,不是我想要产品化的东西。我不需要它是一个在线 Xcode 只是为了能够获取一些文本并编译它。你继续说的很好,但我在 PHP 方面不是很胜任。如果你能指出我使用 PHP 的正确方向,尤其是外壳方面,因为我对 PHP 几乎一无所知。
  • 您将需要一台运行 Mac OS X 的服务器,您可以按月租用它,但它并不便宜。无法在 linux 或 windows 服务器上编译基于 UIKit 的应用程序。执行此操作的代码相对简单,但要完全正确执行此操作将非常耗时。您应该使用@quixoto 的说明作为指导,并单独研究/询问每个组件。
  • 我真的需要一台运行 Mac OS X 的服务器来编译单个文件吗?为什么无法在 linux 服务器上编译 UIKit 应用?
  • @Joshua:在使用 PHP 将表单输入保存到文件时发现:devshed.com/c/a/PHP/PHP-Form-to-Text-File-the-Basics 使用system 命令向 gcc 输出:php.net/manual/en/function.system.php(是否以及如何获得我不知道在非 OS X 系统上运行的某种形式的 iOS 工具链。)
  • @quixoto 别担心,我已经整理好了。我最终将上传的文件保存到了一个永久位置,并使用shell_exec 命令从那里编译到clang,其命令将任何输出存储在一个临时日志文件中。然后我读取日志文件并显示它。这是一个快速视频:idzr.org/zjy5。非常感谢您的帮助!
【解决方案2】:

http://ideone.com/http://www.compileonline.com/compile_objective-c_online.phphttps://compilr.com/(注意:编译器不是免费的)该网站有一个客观的c编译器。不好只是测试没问题

click new code > choose objective-c > write your codes and click submit button.

问题是那里有很多广告,但这并不重要:))

警告如果您不选择私有,您的代码会出现在网站上

【讨论】:

  • 不幸的是,正如我在我的问题中提到的“它显示任何 Foundation(例如 NSObject)或 UIKit(例如 UIView)类的错误”。
【解决方案3】:

我知道它并不是一个真正成熟的“网络服务”,但您可以使用基于网络的 SSH 客户端(或适用于您正在使用的任何平台的应用程序)将 SSH 连接到您的 Mac 回家并运行 clang /gcc 从命令行,以及 vim 或您选择的任何命令行文本编辑器。当我忘记将我的 CS 项目放到 Dropbox 并且需要从校园访问时,我倾向于这样做。

【讨论】:

  • 这不是一个坏主意,但我真的在寻找一种在网络服务器上执行此操作的方法,这样我就不必依赖家里的 mac。
  • 只是为了在这里的另一个答案中添加我的一粒盐,这种方法也很有效。答案可能是:“我以前是通过 SSH 编译的,但你可以有一个带有 IOS SDK 的服务器并通过 Web 服务调用它。”如果你从那个角度看,解决方案是有效的,而且很简单。然后对于更多用户,您可以在多台机器上扩展它。所有机器需要做的就是编译。这对 CPU 的消耗并不大。
【解决方案4】:

你的目标是什么?为了能够测试代码sn-ps?

它不在线也不是免费的,但您可以查看CodeRunner。它可以通过 Mac App Store 获得,大约 5 美元。基本上,您可以测试各种语言的代码 sn-ps,包括 Objective-C。 (顺便说一句,我与 CodeRunner 没有任何联系。)

如果您正在寻找构建 iOS 应用程序的 Xcode 替代方案,我认为您不会找到。

【讨论】:

  • CodeRunner 看起来不错,但不幸的是它适用于 Mac。我想要一个 iOS 应用,只是一个我可以在其中编译像 ideone.com 这样的代码的 Web 服务。
猜你喜欢
  • 2013-06-06
  • 2015-09-25
  • 2013-07-15
  • 2012-02-24
  • 2017-07-07
  • 2016-08-19
  • 1970-01-01
  • 1970-01-01
  • 2020-12-11
相关资源
最近更新 更多