我可以在 Vala 为 iPhone 编码吗?

Posted

技术标签:

【中文标题】我可以在 Vala 为 iPhone 编码吗?【英文标题】:Can I code for iPhone in Vala? 【发布时间】:2011-06-18 23:12:34 【问题描述】:

我正在使用 OpenGL 以 ooc 语言(一种可编译为 c 的新语言)为 iphone 编写游戏。真的很顺利,而且ooc是我非常喜欢的一门语言。现在我刚刚发现了 Vala,我不太明白它依赖于 GLib 和 GObject 意味着什么。我在另一个问题中读到 Vala 依赖于 GTK,但我不认为它确实如此。

问题是:我用 ooc 做什么,我可以用 Vala 做同样的事情吗?我可以在 vala 中为 iPhone 编写一个 OpenGL 游戏吗?并且可以是 c 中使用的 vala 代码吗?

谢谢。

【问题讨论】:

你是如何为 iPhone 编写代码的?我读过的所有关于尝试使用其他语言或在 Windows 或 Linux 上进行编码的线程都回到了同一件事——唯一有效的组合是 Mac 上的 Objective C、Apple API 和 XCode。 您也可以使用 c 或 c++ 编写代码。您需要将所有对苹果 API 的调用包装在 c 中,因为 API 是从目标 c 访问的。由于我的游戏在 OpenGL 上运行,我必须包装的唯一调用是用于创建上下文,仅此而已。其余的可以在 c 中。 Ooc 和 vala 编译为 c。我在 Mac 上。 您需要注意的一件事是使用任何以桌面 OpenGL 为目标的模块,因为它们在那里所做的许多事情都不会移植到 OpenGL ES。如果您希望它在 iPhone 上工作,您需要编写使用该 API 的代码。 【参考方案1】:

Vala 的面向对象是使用 GObject 库实现的,它是 GLib 的一部分。可以在没有对象的情况下使用 Vala,因此不需要 GLib,但这没什么意义。

无论如何,要从 Vala 访问 C 库,需要有人为该库编写 VAPI 绑定(参见 Google)。 Apple API 可能没有一个,因此您必须自己编写它 - 如果 Apple 许可协议允许这样做。

【讨论】:

GLib可以编译成iphone吗? @Damian,我不知道。我比 ios 更了解 Vala。无论如何,它不受官方支持。 对于 Apple,AFAIK,如果它没有得到 Apple 的官方支持,您的应用很可能无法通过认证。 Vala 只是对 C 的“转换”,所以 Apple 没有问题!!问题是 GLib 通常是动态链接的,这在 iOS 上是被禁止的。 Vala 需要一个没有 glib 的 fork........【参考方案2】:

你可以在这个 repo 中找到旧版本的原生 vala 编译器和 iOS 的 libgee:cydia.radare.org(valac 版本是 0.15,它很旧)。 UPD:添加了valac 0.34.4,比较新。

compile GLib for iOS 是可能的,所以编译 vala 代码应该不是问题。这里真正的困难在于已经提到的绑定,我怀疑有人已经拥有适用于 iOS 的 VAPI。

【讨论】:

以上是关于我可以在 Vala 为 iPhone 编码吗?的主要内容,如果未能解决你的问题,请参考以下文章

vala 是跨平台语言吗?

Vala的Makefile

与 C++ 相比,Vala 是一种理智的解析语言吗?

iPhone SDK:可以通过iPad设备访问Localhost吗? (调试时)

在 Vala 中执行系统命令

是否有终端工具可以为 Vala 项目自动生成 autoconf/automake makefile?