跳到主要内容

选择 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"]
}]
}