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