Vala 上系统的位数

Bitness of the system on Vala

至于Vala语言跨平台知道系统的位数吗?

sizeof(void*) 对于 64 位系统为 8,对于 32 位系统为 4。另外,2 个用于 16 位系统,但我什至不知道 glib 可以在那里工作。

GLib 的全部意义在于避免必须执行特定于平台的代码。

但是根据你的评论,你想做一些事情,比如下载平台特定的包。

首先,最好使用系统或用户包管理器来执行此操作,因为他们已经知道如何实现 (DRY principle)。

如果绝对必要,您还可以使用 lsb-release -a 或更通用的 uname -a(用于内核和 arch)或这些工具的其他一些参数。

您可以使用 GLibs 进程生成工具调用它们。

另请参阅:

How to determine whether a given Linux is 32 bit or 64 bit?

一个相关的问题是OS检测:

此外,由于 Vala 是一种编译语言,您可以使用您最喜欢的构建系统将 -DPlatformx64-DPlatformx86 之类的内容传递给 Vala 编译器(参见上面的 link OS 检测有关如何在 Vala 代码中使用预处理器的示例。