交叉編譯 Python
我正在使用帶有執行 Openembedded 的 ARM926EJ-S 的評估板,我想在其上安裝 python。
我使用 linaro 工具鏈 (releases.linaro.org/components/toolchain/binaries/6.2-2016.11/) 在 Fedora 25 上成功交叉編譯了 python 2.7.13,如下所示:
CONFIG_SITE=config.site ./configure --build=x86_64-linux-gnu --host=arm-linux-gnueabihf --disable-ipv6 --enable-unicode=ucs4
我不得不做一個 config.site 因為在編譯過程中它要求我精確:
ac_cv_file__dev_ptmx=no/yes ac_cv_file__dev_ptc=no/yes
我像這個人一樣對他們倆都說“不”:datko.net/2013/05/10/cross-compiling-python-3-3-1-for-beaglebone-arm-angstrom/
然後我測試添加:
--host=arm-elf-linux
因為它適用於另一個庫(pjsip),但不幸的是它沒有用,所以我找到了這個解決方案:
--host=arm-unknown-linux-gnueabihf
這裡:github.com/jedisct1/libsodium/issues/274
這是因為在配置過程中出現錯誤,要求我這樣做:
--desable-ipv6
然後配置順利,所以make。要進行 make install,因為我必須將它安裝在我的板上,所以我做了:
make install DESTDIR=root@IP_ADRESS
這也有效,python 安裝在 root@IP_ADRESS/usr/local/lib/python2.7 中。
但是我在我的板上找不到它,也沒有啟動 python shell。
所以我試試這個:
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib"
喜歡在這裡回答:stackoverflow.com/questions/4743233/is-usr-local-lib-searched-for-shared-libraries
這並沒有改變任何東西,我發現 /usr/local/lib 不存在……而且我發現我的 pjsip lib 也沒有安裝……
你知道我的庫去哪兒了嗎?以及如何使用它們?
謝謝 !
編輯 :
找到了解決方案,事實上當你這樣做時:
make install DESTDIR=root@IP_ADRESS
它不會將其安裝到 root@IP_ADRESS,但它會創建一個名為“root@IP_ADRESS”的文件夾…
所以我 tar.bz2 包含在這個文件夾中的所有文件,用 scp 將它們發送到我的板上,並複制我的板 /usr/ 中的所有文件夾和文件。
但是當我嘗試啟動它時,python 不起作用:
~# python -sh: /usr/bin/python: cannot execute binary file
是因為在配置部分,–host 不是好的嗎?
我找到了解決方案。我使用的開發板是集成了 OMAPL138 (ARM926EJ-S + DSP) 的 TMDSLLCDK138。
對於那些試圖為這個執行 Arago SDK 的開發板交叉編譯 Python 2.7 的人來說,這就是方法!我正在開發 Ubuntu 16.04。
首先安裝 Arago 工具鏈:
不是這個:http: //software-dl.ti.com/sdoemb/sdoemb_public_sw/arago_toolchain/2011_09/index_FDS.html (因為它已被棄用!!)
但是中的那個
mcsdk_1_01_00_02_setuplinux.bin
!wget http://software-dl.ti.com/sdoemb/sdoemb_public_sw/mcsdk/latest1/exports/mcsdk_1_01_00_02_setuplinux.bin chmod +x mcsdk_1_01_00_02_setuplinux.bin sudo ./mcsdk_1_01_00_02_setuplinux.bin
我將它安裝在
/opt/ti/
.然後:
cd /opt/ti/mcsdk_1_01_00_02 chmod +x linux-devkit.sh sudo ./linux-devkit.sh
它會問你你想把它安裝在哪裡,我一直在
/usr/local/arago.2013-05/
現在做:
cd /usr/local/arago-2013.05/ . ./environment-setup
通常,您的 shell 將“轉換”並且您的命令行正在執行:
[linux-devkit]:/usr/local/arago-2013.05/>
好的,到這裡您已經完成了 GOOD Arago 工具鏈的安裝。
現在交叉編譯和安裝 Python:
我在這個
linux-devkit
shell 中執行了所有其他命令。wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tar.xz tar -Jxvf Python-2.7.13.tar.xz cd Python-2.7.13/
現在創建一個名為的文件
config.site
(因為如果你不這樣做,你會收到一個錯誤要求你這樣做):touch config.site gedit config.site
在此文件中添加這兩行:
ac_cv_file__dev_ptmx=no ac_cv_file__dev_ptc=no
現在你可以這樣
./configure
做:CONFIG_SITE=config.site ./configure --host=arm-arago-linux --prefix=/home/YOUR_USER/MY_BOARD_python --build=x86_64-linux-gnu --disable-ipv6 make make install
現在您只需將 MY_BOARD_python 文件夾壓縮
scp
到您的開發板上:tar -jcvf MY_BOARD_python.tar.bz2 MY_BOARD_python/ scp MY_BOARD_python.tar.bz2 root@IP_ADRESS:~/
現在在你的板上:
tar -jxvf MY_BOARD_python.tar.bz2 cp -R MY_BOARD_python/* /usr/
現在如果你輸入 Python:
root@omapl138-lcdk:~# python Python 2.7.13 (default, Feb 23 2017, 16:37:33) [GCC 4.5.3 20110311 (prerelease)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> HURAYY!!
希望這會有所幫助!