至于Vala语言的跨平台知道系统的位数吗?
答案 0 :(得分:2)
sizeof(void*)
对于64位系统为8,对于32位系统为4。此外,2位用于16位系统,但我甚至不知道glib会在那里工作。
答案 1 :(得分:0)
GLib的重点是避免必须执行特定于平台的代码。
但是根据您的评论,您希望执行类似下载平台特定包的操作。
首先,最好使用系统或用户包管理器来实现这一点,因为他们已经知道如何实现这一点(DRY principle)。
如果你绝对必须,你也可以使用像lsb-release -a
这样的工具或更普遍的uname -a
(用于内核和拱门)或这些工具的其他参数。
您可以使用GLibs流程生成设施调用它们。
另见:
How to determine whether a given Linux is 32 bit or 64 bit?
相关的问题是操作系统检测:
Is OS detection possible with GLib?
此外,由于Vala是一种编译语言,您可以使用自己喜欢的构建系统将类似-DPlatformx64
或-DPlatformx86
的内容传递给Vala编译器(有关如何操作,请参阅上面的操作系统检测链接)在Vala代码中使用预处理器。)