ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

交叉编译Python

2019-08-16 22:57:07  阅读:221  来源: 互联网

标签:python cross-compilation


我正在使用一个运行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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有