如何检查它是否是自动制作文件中的 32/64 位操作系统?



我想检查在automake(.am(文件中使用的操作系统是32位还是64位。

configure通常非常擅长弄清楚它运行在什么操作系统/体系结构上,并通过几个宏公开这些信息:AC_CANONICAL_BUILDAC_CANONICAL_HOSTAC_CANONICAL_TARGET

configure的最终用户可以通过向configure的调用添加标志来覆盖此猜测。"构建"、"主机"one_answers"目标"的定义也可以在该链接上找到。

我不确定你关心的是哪个操作系统或CPU。构建机器是运行软件编译的地方。它可能与运行构建编译输出的主机相同。所以我想你关心主机,所以…

配置.ac

...
AC_CANONICAL_HOST
HOST_OS=""
AS_CASE([$host_cpu],
[x86_64|aarch64*|mips64*|ppc64*|sparc64],
[
HOST_OS="64"
],
[i?86|arm*|mips*|ppc*|sparc],
[
HOST_OS="32"
])
AC_SUBST([HOST_OS])

Makefile.am

foo_CPPFLAGS = -DHOST_OS=$(HOST_OS)

最新更新