跨平台編譯#
跨平台編譯是一個複雜的主題,我們在這裡僅添加一些可能有用的提示(目前而言)。截至 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