如何确定autoconf的--build配置选项的正确输入值?
如何确定CPython构建时的
--build参数取值 这个--build选项其实不是CPython特有的,它是autoconf构建工具链的标准配置项,用来告诉编译系统当前机器的规范系统类型。下面分几种场景说明怎么正确获取它的取值:
1. 发行版专属命令快速获取
针对不同Linux发行版,有现成的命令可以直接拿到这个值:
- Debian/Ubuntu等DEB系发行版:用
dpkg-architecture工具,这也是CPython官方Dockerfile里采用的方式:
执行后会输出类似dpkg-architecture --query DEB_BUILD_GNU_TYPEx86_64-linux-gnu的规范值。 - CentOS/RHEL/Fedora等RPM系发行版:借助rpm的宏定义来获取:
在CentOS 7上运行的话,通常会得到rpm --eval '%_host_cpu-%_host_vendor-%_host_os'x86_64-redhat-linux-gnu这样的结果。
2. 跨发行版通用自动探测
如果需要一个能在所有Linux发行版上通用的方法,直接用CPython源码包里自带的config.guess脚本就可以——它是autoconf工具链的一部分,专门用来自动探测当前系统的规范类型:
- 先解压你要编译的CPython源码包,进入源码目录
- 直接运行以下命令:
它会直接输出当前机器对应的规范./config.guess--build值,完全不用手动判断。
3. 关于系统类型的规范格式
根据autoconf手册的说明,--build参数的规范值格式为:
cpu-company-system
其中system可以是os或者kernel-os的形式
如果遇到不确定的别名(比如sun4这类简称),还可以用CPython源码里的config.sub工具转换成规范名称,比如:
./config.sub sun4
它会返回对应的完整规范系统类型。
内容的提问来源于stack exchange,提问作者Matthew Feickert
相关产品推荐
相关产品推荐

