python3交叉编译(一)

Python3交叉编译步骤
一.项目场景
在cortex-A9主板上运行python3,能够使用常用的三方库
二.配置
主机环境:ubuntu-18.04-x86_64(虚拟机)
交叉编译链:arm-linux-gnueabihf-gcc
开发板:cortex-A9(armv7l)


三.安装交叉编译器
安装编译器
拷贝编译链压缩包到虚拟机中的Documents目录,CD到该目录然后执行tar -xvf gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf.tar.xz 得到gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf

配置环境变量
Cd到/home/用户/目录vim .bashrc,编辑终端的配置文件,将交叉编译工具加入环境变量

PATH=$PATH:/home/user_name/Documents/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/
export PATH

 


保存并退出.bashrc,重新启动终端,输入gcc -v测试交叉编译工具,出现下图则配置成功

四 下载python
新建一个文件夹,虚拟机联网:在命令行中输入:wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz
下载成功后开始解压
或者直接拷贝相应的源码Python-3.6.9.tar.xz到ubuntu解压
Cd到安装包目录执行以下命令:
1. tar -xvf Python-3.6.9.tar.xz

五安装相关依赖
使用下面的命令进行安装编译所需要的依赖

1. sudo apt-get install openssl
2. sudo apt-get install libssl-dev

 

六.编译本机HOST解释器
在交叉编译的时候需要在HOST PC上运行对应版本的Python程序,所以需要先编译HOST PC上面用的Python,运行以下命令

1. cd Python-3.6.9/
2. ./configure --prefix=$PWD/../_install_host --enable-shared
3. make -j4
4. make install
5. make distclean

 


–-prefix指定的目录可自行修改,但不要放在Python-3.6.9目录里,因为后续执行make distclean会清掉一些文件。

把生成HOST PC端即_install_host目录中的bin和lib,加到环境变量里面去,此处的地址为_install_host的地址我的地址是:/home/h5000/Desktop/data/_install_host后续交叉编译就会自动找到python3了,其指令如下:

export PATH=/home/XXX/_install_host/bin:$PATH
export LD_LIBRARY_PATH=/home/XXX/_install_host/lib:$LD_LIBRARY_PATH

 


输入以上指令后,在Ubuntu输入python3 指令 如图2.2所示:

至此,本机已经编译完成
接下来编译目标板(arm板)
七.配置交叉编译工具链
这里采用的是arm-linux-gnueabihf交叉编译工具链
/home/h5000/Documents/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf-gcc
配置交叉编译工具链命令如下:

1. cd Python-3.6.9/
2. mkdir _install
3. ./configure --host=arm-linux-gnueabihf --build=armv7 --prefix=$PWD/_install --enable-ipv6 --enable-shared ac_cv_file__dev_ptmx="yes" ac_cv_file__dev_ptc="no"

 


–host是交叉编译工具链,–build表示编译出来的程序运行的处理器,–prefix表示安装目录。
八.目标板编译安装
在Python-3.6.9目录中,运行以下命令

1. make –j4
2. make install

 


若出现报错:subprocess.CalledProcessError: Command ‘(‘lsb_release’, ‘-a’)’ returned non-zero exit status 1.

执行以下命令后重新make install即可

1. sudo rm -rf /usr/bin/lsb_release
2. make install

 



编译成功后在/home/h5000/Desktop/data/Python-3.6.9/_install目录下生成bin,include,lib,share四个文件夹,如图所示

九.移植到开发板并测试
将交叉编译出来的_install目录压缩打包拷贝到目标板,然后解压,

1. tar -xvf _install
2. Cd /usr/bin/
3. mkdir python
4. cd _install
5. cp -r bin /usr/bin/python
6. cp -r include /usr/bin/python
7. cp -r lib/usr/bin/python
8. cp -r share /usr/bin/python

 


然后把解压出来的bin,include,lib,share四个文件夹复制到python目录中

然后配置开发板的环境变量,把python加入环境变量中
输入vi ~/.bashrc
添加:export PYTHONPATH="/yourpath/:$PYTHONPATH"
执行source ~/.bashrc使修改立即生效

保存后输入python3查看

至此,交叉编译移植已完成

参考文章:

https://blog.csdn.net/foreverey/article/details/116946569

https://blog.csdn.net/qq_33753562/article/details/120972805

posted @   秀才哥哥  阅读(3143)  评论(3编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示