Ubuntu16.04 下 python交叉编译的一些坑 比如:Command ‘lsb_release -a‘ returned non-zero exit status 1
配置:虚拟机:VMware workplace pro 15平台:Ubuntu16.04python:python 3.6.6ARM :明远智睿核心板 my-imx-6ul编译链:arm-linux-gnueabihf在交叉编译的这一天:2020年8月8日北京奥运会开幕12周年纪念日,整整一天从凌晨5点到晚上23点干的正事就这一个除去其他的时间,在这件事上花了12+小时总在重复这个过程,试了Ubu
配置:
- 虚拟机:VMware workplace pro 15
- 平台:Ubuntu16.04
- python:python 3.6.6
- ARM :明远智睿 核心板 my-imx-6ul
- 编译链:arm-linux-gnueabihf
在交叉编译的这一天:2020年8月8日 北京奥运会开幕12周年纪念日,整整一天 从凌晨5点到晚上23点 干的正事就这一个 除去其他的时间,在这件事上花了12+小时
总在重复这个过程,试了Ubuntu18.04 和Ubuntu16.04两个版本 还是感觉16.04适合干这个活
体验:
首先,交叉编译时 最好是通过root用户,普通用户有时会出现编译不成功之类的问题,root用户好得多
第二,第一次编译不成功,别立马就再次编译 记得make clean一下
第三,make 后不成功,如果错误不太认识,不要忙着查解决方案,make clean后 就在原环境下再编译一次 真的,有时候系统就是出叉子,给他一个再来一次的机会或许就成了
第四,make install确实是总出错
第五,如果这个虚拟机中的Ubuntu系统是第一次用于交叉编译,还是需要配置一些东西的,比如pip zlib
环境配置方面:
-
1.装机时默认只有apt-get install 进行软件安装
需要升级和更新一下内容,保证一个好的状态
中间夹杂一些内容 安装pip3
更新源:输入命令sudo apt-get update来更新我们的刚刚添加的源。
更新软件:更新源之后,输入命令sudo apt-get upgrade更新我们的软件。这个过程会有点漫长,我们耐心等待即可。 -
2.更换新的vim编辑器
首先,要先卸掉旧版的vi,输入以下命令:
sudo apt-get remove vim-common
然后安装full版的vim,输入命令:
sudo apt-get install vim
(注:(VIM在两个文件间复制的操作:通过按V,进入可视化操作方式,再复制和粘贴)
) -
3.安装Ubuntu软件中心
有问题时可以参考:https://blog.csdn.net/Janet_1994/article/details/78915996
一版只要sudo apt-get install software-center即可 -
4.安装zlib(在进行make install时如果不安装zlib的话就会显示错误)
1)$ sudo apt-get install zlib1g
2)$ sudo apt-get install zlib1g.dev
3)直接输入上述命令后还是不能安装。这就要求我们先装ruby.在ubuntu里,zlib叫zlib1g,相应的zlib-devel叫zlib1g.dev。默认的安装源里没有zlib1g.dev。要在packages.ubuntu.com上找。
4)$sudo apt-get install ruby
5)然后再装zlib1g-dev就可以了, $sudo apt-get install zlib1g-dev
(在中间更新了下software-center 如果不行就试试这个……) -
5 安装pip3
现在我们就可以开始安装我们的pip3了,输入命令sudo apt-get install python3-pip,这个会从国内的源下载pip3并进行自动安装。完成之后,输入pip3 -V查看pip3的版本,如果正常显示pip3的版本,说明已经成功安装。
如果安装出问题,可能是你的python压根没安装好
困扰好久的大问题
subprocess.CalledProcessError: Command ‘lsb_release -a’ returned non-zero exit status 1.
Makefile:1099: recipe for target ‘install’ failed
make: *** [install] Error 2
这个图片真的每每让我头疼啊!
查阅了很多资料,终于在一篇博文得到灵感:
参考:https://www.cnblogs.com/longbigbeard/p/10028746.html
该问题出现在 交叉编译的最后一步 make install上
解决方案:
sudo rm /usr/bin/lsb_release
不过最初并未在该位置发现这个内容,我就安装了一下这个工具
sudo apt-get install lsb-core -y
然后试着还是不行,然后把这个工具再删除掉:
sudo rm /usr/bin/lsb_release
此时测试正常 不知道为啥 请有缘人给解答下 稀里糊涂就成功了
困扰多次的二问题
2)进行make install 时出现错误
/bin/sh: 7: arm-linux-gnueabihf-ranlib: not found
在操作中按照make 时用普通用户 在make install前su 到root用户的方案,但是依旧出错,
此时按照第二方案:
全部在root账号下执行
su
source /etc/profile
./configure CC=arm-linux-gnueabihf-gcc CXX=CC=arm-linux-gnueabihf-g++ --host=arm-linux-gnueabihf --build=x86_64-linux-gnu --target=arm-linux-gnueabihf --disable-ipv6 --prefix=/opt/python3.6.6 ac_cv_file__dev_ptmx=yes ac_cv_file__dev_ptc=yes
make 正常
make install
正常 终于成功了
更多推荐
所有评论(0)