Skip to main content
Version: nightly 🚧

三元组

本文解释了 kmpkg 中三元组的概念及其功能。

三元组是一种在交叉编译中使用的标准术语,用于以单个方便的名称完全捕获目标环境(CPU、OS、编译器、运行时等)。

在 kmpkg 中,三联密码用于描述每个库的虚构“目标配置集”。 在三联密码中,库通常使用相同的配置生成,但这不是一项要求。 例如,可以有一个三联密码负责静态生成 openssl 和动态生成 zlib,一个负责静态生成两者,一个负责动态生成两者(全部针对同一个目标 OS 和体系结构)。

一个生成将会使用两个三联密码中的文件:即目标三联密码和主机三联密码。 如果需要为不同的库应用不同的设置,则必须使用该设置组合创建一个自定义三联密码。 请参阅每个端口的自定义,了解如何实现。

kmpkg 提供许多常见平台和配置的预定义三联密码。 运行 kmpkg help triplet 以获取环境中可用的列表。

三元组码选择

要选择目标三元组:

要为当前机器选择主机三元组:

社区三元组

文件夹中包含 triplets\community 的三联密码不是由特选注册表的持续集成测试的,但通常由社区请求。 由 于我们没有持续覆盖范围,因此端口更新可能会中断与社区三联密码的兼容性。 我们很乐意接受和审查旨在解决这些三联密码问题的贡献。

使用社区三元组时,将在包安装过程中打印如下所示的消息:

-- Using community triplet x86-uwp. This triplet configuration is not guaranteed to succeed.
-- [COMMUNITY] Loading triplet configuration from: D:\src\kmpkg\triplets\community\x86-uwp.cmake

添加或替换三元组

可以通过替换现成的三联密码或为特定项目创建新的三联密码来扩展 kmpkg。

首先,将内置三联密码文件从 triplets\ 目录复制到另一个文件系统位置。 然后,在与 kmpkg 交互时,将该目录添加到覆盖三联密码路径列表。

请参阅我们的覆盖三元组示例,了解更加详细的分步教程。

info

三元组名称只能包含小写字母数字字符和连字符。

注解

运行任何 kmpkg 命令时的默认三元组是$KMPKG_DEFAULT_TRIPLET或特定于平台的选择(如果该环境变量未定义)。

  • Windows: x64-windows
  • Linux: x64-linux
  • OSX: x64-osx

我们建议在创建新的三元组时使用系统命名方案。这Android 工具链命名方案是一个很好的灵感来源: standalone_toolchain