linux 下編譯python


1. 下載Python源代碼

到 https://www.python.org/ftp/python/ 上下載與電腦對應版本的Python

2. 編譯

執行下列命令編譯安裝
--prefix設置安裝的位置,便於管理

./configure --host=arm-linux --build=arm-linux-gnueabihf ac_cv_file__dev_ptmx=no ac_cv_file__dev_ptc=no --disable-ipv6 --prefix=/home/apps/python3

host與本機的arm庫路徑名稱一致

2.1. 編譯中遇到的錯誤

  1. 遇到錯誤configure: error: readelf for the host is required for cross builds
    看樣子是缺少readelf這個文件
    在arm-gcc的bin目錄下發現一個arm-linux-gnueabihf-readelf,在此目錄執行
ln -s arm-linux-gnueabihf-readelf arm-linux-readelf

 

  1. 遇到錯誤Fatal: You must get working getaddrinfo() function. or you can specify "--disable-ipv6".
    因為用不到IPv6,所以在configure后面加上--disable-ipv6

  2. configure: error: set ac_cv_file__dev_ptmx to yes/no in your CONFIG_SITE file when cross compiling
    在configure后面加上ac_cv_file__dev_ptmx=no即可

  3. configure: error: set ac_cv_file__dev_ptc to yes/no in your CONFIG_SITE file when cross compiling
    同樣加上ac_cv_file__dev_ptc=no

  4. configure: error: cannot run C compiled programs. If you meant to cross compile, use '--host'.
    交叉編譯需要設置--host--build兩個參數



作者:uenigma
鏈接:https://www.jianshu.com/p/7346cc4e41ac
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
 
當在arm機器上,使用python調用出現 Illegal instruction(core dumped)時,將numpy從1.19.5降級至1.19.4,可能可以解決問題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM