选择 LLVM 功能
安装基础库
我们以 LLVM 为例说明。你可以通过以下命令安装 LLVM:
> kmpkg install llvm
也可通过清单文件安装:
{
"dependencies": ["llvm"]
}
安装完成后,执行以下命令验证:
> installed\x86-windows\bin\llc.exe --version
输出内容如下:
Registered Targets:
x86 - 32-bit X86: Pentium-Pro and above
x86-64 - 64-bit X86: EM64T and AMD64
安装额外功能
LLVM 本身支持更多目标架构(如 ARM、SPARC、SystemZ 等), 但上述默认安装仅包含 x86/x86-64 架构——若需使用 ARM 等其他架构,需借助 kmpkg 为 llvm 端口提供的 “target-*” 系列功能。
执行以下命令可查看 llvm 支持的所有功能:
> kmpkg search llvm
输出示例:
llvm 10.0.0#6 The LLVM Compiler Infrastructure
llvm[clang] 构建 C 语言家族前端。
llvm[clang-tools-extra] 构建 Clang 工具集。
...
llvm[target-all] 编译所有后端架构。
llvm[target-amdgpu] 编译 AMDGPU 后端。
llvm[target-arm] 编译 ARM 后端。
...
你可通过“功能安装语法”安装指定目标架构:
> kmpkg install llvm[target-arm] # 安装包含 ARM 后端的 LLVM
清单文件中对应的写法:
{
"dependencies": [{ "name": "llvm", "features": ["target-arm"] }]
}
禁用默认功能
llvm 端口包含若干默认启用的功能,你可能不需要这些功能:例如,
clang 是默认功能,这意味着执行 kmpkg install llvm 时会自动编译并安装 Clang。
若你仅需将 LLVM 作为编译器后端使用(无需 Clang),
可通过特殊的 core 标识禁用所有默认功能:
> kmpkg install llvm[core,target-arm] # 用 "core" 移除默认功能后,原本默认包含的目标架构也会被清除
清单文件中禁用默认功能的写法:
{
"dependencies": [{
"name": "llvm",
"default-features": false,
"features": ["target-arm"]
}]
}