我正在使用 OpenGL 以ooc语言(一种可编译为 c 的新语言)为 iphone 编写游戏。真的很顺利,而且ooc是我非常喜欢的一门语言。现在我刚刚发现了 Vala,我不太明白它依赖于 GLib 和 GObject 意味着什么。我在另一个问题中读到 Vala 依赖于 GTK,但我不认为它确实如此。
问题是:我对 ooc 做了什么,我可以对 Vala 做同样的事情吗?我可以在 vala 中为 iPhone 编写一个 OpenGL 游戏吗?并且可以从 c 中使用 vala 代码吗?
谢谢。
Vala 的面向对象是使用 GObject 库实现的,它是 GLib 的一部分。可以在没有对象的情况下使用 Vala,因此不需要 GLib,但没有太多意义。
无论如何,要从 Vala 访问 C 库,需要有人为该库编写 VAPI 绑定(参见 Google)。Apple API 可能没有一个,因此您必须自己编写它——如果 Apple 许可协议允许的话。
你可以在这个 repo 中找到旧版本的原生 vala 编译器和 iOS 的 libgee:cydia.radare.org(valac 版本是 0.15,它很旧)。UPD:添加了 valac 0.34.4,相对较新。
可以为 iOS 编译 GLib,因此编译 vala 代码应该不是问题。这里真正的困难来自已经提到的绑定,我怀疑有人已经拥有适用于 iOS 的 VAPI。