交叉编译#

交叉编译是一个复杂的主题,我们只在这里添加一些可能有用的提示(目前).截至 2025 年 5 月,已知使用 Meson 交叉文件进行交叉编译以及基于 crossenv 的交叉编译是可行的.Conda-forge 使用后一种方法. 在没有 crossenv 的情况下进行交叉编译需要通过 meson-python 将构建选项传递给 meson setup .

已知成功交叉编译 NumPy 的所有发行版都使用 python -m build ( pypa/build ),但使用 pip 也是可能的.以下是这些发行版上 NumPy"构建配方"的链接:

另请参阅 Meson’s documentation on cross compilation ,了解您可能需要传递给 Meson 才能成功进行交叉编译的选项.

一个可能的障碍是,构建需要运行一个已编译的可执行文件,以便确定主机平台的 long double 格式.这可能是一个障碍,因为它需要 crossenv 或 QEMU 才能运行主机(交叉)Python.为避免此问题,请在交叉文件中指定相关目录的路径:

[properties]
longdouble_format = 'IEEE_DOUBLE_LE'

有关交叉编译 NumPy 所需的交叉文件示例,请参阅 numpy#288861 . 将这些放在一起,使用这样的交叉文件调用交叉构建,如下所示:

$ python -m build --wheel -Csetup-args="--cross-file=aarch64-myos-cross-file.txt"

有关交叉编译的更多详细信息和当前状态,请参见: