Ubuntu16.04 下 python交叉编译的一些坑 比如:Command ‘lsb_release -a‘ returned non-zero exit status 1

13 篇文章 1 订阅
5 篇文章 0 订阅

配置:

  • 虚拟机: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
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值