【问题标题】:Bitness of the system on ValaVala 系统的位数
【发布时间】:2018-03-11 23:00:43
【问题描述】:

至于Vala语言跨平台了解系统的位数?

【问题讨论】:

  • 你为什么想知道? XY 问题? xyproblem.info
  • @JensMühlenhoff 您需要下载您正在使用的文件,具体取决于系统的位数。
  • 我明白了,这是确实有用的少数情况之一。

标签: 32bit-64bit vala


【解决方案1】:

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

【讨论】:

  • 谢谢。而在 Glib 中就没有更美观的方式了吗?
【解决方案2】:

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 代码中)。

【讨论】:

    猜你喜欢
    • 2011-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    • 2013-03-06
    • 2011-02-20
    • 2013-08-29
    相关资源
    最近更新 更多