交叉编译#
交叉编译是一个复杂的主题,我们在这里只添加一些希望有帮助的提示(目前).截至2023年5月,基于 crossenv
的交叉编译已知是可行的,如在 conda-forge 中使用的那样.没有 crossenv
的交叉编译需要一些手动覆盖.您通过向 meson setup
传递选项来指示这些覆盖,通过 meson-python.
所有已知能够成功交叉编译 NumPy 的发行版都在使用 python -m build
(pypa/build
),但使用 pip
应该也是可能的.以下是这些发行版上 NumPy 的”构建配方”链接:
Conda-forge 是一个链接.
另请参阅 Meson 关于交叉编译的文档 以了解您可能需要传递给 Meson 的选项,以便成功进行交叉编译.
一个可能的问题是,构建需要运行一个编译的可执行文件,以确定主机平台的 long double
格式.这可能是一个障碍,因为它需要 crossenv
或 QEMU 来运行主机(交叉)Python.为了避免这个问题,请在您的 交叉文件 中指定相关目录的路径:
[properties]
longdouble_format = 'IEEE_DOUBLE_LE'
有关交叉编译的更多详细信息和当前状态,请参见:
Python 中的交叉编译状态:pypackaging-native 关键问题页面
SciPy 交叉编译需求和问题的跟踪问题:scipy#14812