Python

交叉編譯 Python

  • October 12, 2021

我正在使用帶有執行 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-devkitshell 中執行了所有其他命令。

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!!

希望這會有所幫助!

引用自:https://unix.stackexchange.com/questions/342925