【发布时间】:2018-03-11 23:00:43
【问题描述】:
至于Vala语言跨平台了解系统的位数?
【问题讨论】:
-
你为什么想知道? XY 问题? xyproblem.info
-
@JensMühlenhoff 您需要下载您正在使用的文件,具体取决于系统的位数。
-
我明白了,这是确实有用的少数情况之一。
标签: 32bit-64bit vala
至于Vala语言跨平台了解系统的位数?
【问题讨论】:
标签: 32bit-64bit vala
sizeof(void*) 对于 64 位系统为 8,对于 32 位系统为 4。另外,2 用于 16 位系统,但我什至不知道 glib 会在那里工作。
【讨论】:
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 代码中)。
【讨论】: