编程语言
首页 > 编程语言> > 交叉编译Python

交叉编译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

因为它适用于另一个lib(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也没有安装……

你知道我的libs去了哪里吗?我怎么用它们?

谢谢 !

编辑:

找到解决方案,实际上当你这样做时:

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)的TMDSLCDK138.

对于那些尝试交叉编译Pyhton 2.7的人来说,运行Arago SDK的这个板就是这样的!我正在研究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!!

跳这将有所帮助!

标签:python,cross-compilation
来源: https://codeday.me/bug/20190816/1671622.html