Android12编译kernel4.9解决:scripts/gcc-wrapper.py, line 79, in run_gcc(一百六十八)

news2024/11/16 3:34:16

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀
优质专栏:多媒体系统工程师系列原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:Android12之解决scripts/gcc-wrapper.py", line 79, in run_gcc报错

2.报错如下:

make[1]: 进入目录“out/android-msm-pixel-4.9/private/msm-google”
  CC [M]  private/msm-google/drivers/zgj/test.o
Traceback (most recent call last):
  File "private/msm-google/scripts/gcc-wrapper.py", line 94, in <module>
    status = run_gcc()
  File "/private/msm-google/scripts/gcc-wrapper.py", line 79, in run_gcc
    print >> sys.stderr, line,
TypeError: unsupported operand type(s) for >>: 'builtin_function_or_method' and '_io.TextIOWrapper'. Did you mean "print(<message>, file=<output_stream>)"?
make[4]: *** [/private/msm-google/scripts/Makefile.build:349:kernel_4.9.270/private/msm-google/drivers/zgj/test.o] 错误 1
make[3]: *** [private/msm-google/Makefile:1669:_module_kernel_4.9.270/private/msm-google/drivers/zgj] 错误 2
make[2]: *** [Makefile:152:sub-make] 错误 2
make[1]: *** [Makefile:24:__sub-make] 错误 2
make[1]: 离开目录“kernel_4.9.270/out/android-msm-pixel-4.9/private/msm-google”
make: *** [Makefile:9:default] 错误 2

3.报错原因:

  • python版本的语法问题

  • Python2和Python3之间的主要区别。

  1. 语法差异:Python2使用的是ASCII编码,而Python3则使用的是Unicode编码。这意味着Python3可以更好地支持多语言和特殊字符。另外,Python3采用的是print()函数而不是print语句,并且要求括号是必需的,而Python2使用的是print语句。

  2. 整数除法:在Python2中,两个整数相除的结果仍然是一个整数,而不是一个浮点数。而在Python3中,两个整数相除的结果将会是一个浮点数。如果想在Python2中执行浮点除法,需要将其中一个数转为浮点型。

  3. print函数:在Python2中,print语句可以直接打印多个变量,例如:print “Hello”, name。而在Python3中,print函数需要使用括号并且将变量以逗号分隔,例如:print(“Hello”, name)。

  4. 异常处理:在Python2中,使用的是关键字except来捕获异常,而在Python3中,使用的是关键字except Exception as e。

  5. 数据类型:在Python3中,引入了新的数据类型比如bytes和bytearray,以及新的语法来处理文本和二进制数据。Python2中的字符串类型默认是ASCII编码的,而Python3中的字符串类型默认是Unicode编码的。

  6. range函数:在Python3中,range函数返回的是一个可迭代对象,而在Python2中,返回的是一个列表。这样的改变可以节省内存,并且更加高效。

  7. 输入函数:在Python2中,使用的是raw_input()函数获取用户输入,而在Python3中,使用的是input()函数。

  • 需要注意的是,由于Python2发布于2000年,所以在后来的发行版中,Python3进行了一些语法和功能的改变,以提升语言的性能和易用性。因此,Python3版本对一些旧的Python2代码可能不兼容,需要进行一些适应和修改。

  • 总结而言,Python2和Python3之间存在着一些重要的差别,包括语法、整数除法、print函数、异常处理、数据类型、range函数和输入函数等方面。因此,在进行Python编程时,需要根据使用的版本来选择相应的语法和功能。

4.解决

  • kernel/private/msm-google/scripts/gcc-wrapper.py

修改前:

def run_gcc():
    args = sys.argv[1:]
    # Look for -o
    try:
        i = args.index('-o')
        global ofile
        ofile = args[i+1]
    except (ValueError, IndexError):
        pass

    compiler = sys.argv[0]

    try:
        proc = subprocess.Popen(args, stderr=subprocess.PIPE)
        for line in proc.stderr:
-           print >> sys.stderr, line,
-            interpret_warning(line)

        result = proc.wait()
    except OSError as e:
        result = e.errno
        if result == errno.ENOENT:
            print >> sys.stderr, args[0] + ':',e.strerror
            print >> sys.stderr, 'Is your PATH set correctly?'
        else:
            print >> sys.stderr, ' '.join(args), str(e)

    return result

if __name__ == '__main__':
    status = run_gcc()
    sys.exit(status)

修改后:

def run_gcc():
    args = sys.argv[1:]
    # Look for -o
    try:
        i = args.index('-o')
        global ofile
        ofile = args[i+1]
    except (ValueError, IndexError):
        pass

    compiler = sys.argv[0]

    try:
        proc = subprocess.Popen(args, stderr=subprocess.PIPE)
        for line in proc.stderr:
+            print ( sys.stderr, line,)
+           # interpret_warning(line)

        result = proc.wait()
    except OSError as e:
        result = e.errno
        if result == errno.ENOENT:
            print >> sys.stderr, args[0] + ':',e.strerror
            print >> sys.stderr, 'Is your PATH set correctly?'
        else:
            print >> sys.stderr, ' '.join(args), str(e)

    return result

if __name__ == '__main__':
    status = run_gcc()
    sys.exit(status)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1310014.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《数据结构、算法与应用C++语言描述》-最大高度优先左高树-C++实现

左高树 完整可编译运行代码见&#xff1a;Github::Data-Structures-Algorithms-and-Applications/_26maxHblt 定义 (大顶堆和小顶堆)堆结构是一种隐式数据结构(implicit data structure)。用完全二叉树表示的堆在数组中是隐式存储的(即没有明确的指针或其他数据能够用来重塑…

从池化的角度看GNN(包含PR-GNN,EdgePool等7篇论文)上篇

从池化的角度看GNN&#xff08;包含PR-GNN&#xff0c;EdgePool等7篇论文&#xff09; 前言一些总结一些早期论文的简要介绍1️⃣论文PR-GNN&#xff1a;《Pooling Regularized Graph Neural Network for fMRI Biomarker Analysis》 下一篇章笔记链接 前言 这里是早期的笔记&a…

MySQL 系列:注意 ORDER 和 LIMIT 联合使用的陷阱

文章目录 前言背后的原因ORDER BY 排序列存在相同值时返回顺序是不固定的LIMIT 和 ORDER BY 联合使用时的行为ORDER BY 或 GROUP BY 和 LIMIT 联合使用优化器默认使用有序索引 如何解决其它说明个人简介 前言 不知道大家在在分页查询中有没有遇到过这个问题&#xff0c;分页查…

pytorch之优化器、学习率函数学习

1、TORCH.OPTIM torch.optim是一个实现各种优化算法的包。大多数常用的方法都已经支持&#xff0c;并且接口足够通用&#xff0c;因此将来也可以轻松集成更复杂的方法 1、如何使用优化器 要使用&#xff0c;torch.optim您必须构造一个优化器对象&#xff0c;该对象将保存当前…

立创EDA把三个单独的PCB合并成一个文件

[TOC](立创EDA把三个单独的PCB合并成一个文件 1.具体操作 1.具体操作 参考&#xff1a;立创社区 先选中PCB CTRLSHIFTC, CTRLSHIFTV** **

uniapp交互反馈api的使用示例

官方文档链接&#xff1a;uni.showToast(OBJECT) | uni-app官网 1.uni.showToast({}) 显示消息提示框。 常用属性&#xff1a; title:页面提示的内容 image&#xff1a;改变提示框默认的icon图标 duration&#xff1a;提示框在页面显示多少秒才让它消失 添加了image属性后。 注…

PHP之添加文字水印,两端文字分别设置不同的样式,支持透明度

/*** 给图片添加文字水印 可控制字体颜色透明度&#xff0c;默认是居中* param string $imagePath 图片地址* param string $outputPath 新图片地址 默认使用$imgurl* param string $textArray 水印文字* param int $fontSize 字体大小* param string $fontPath 字体文件路径* …

Python爬虫实战-采集微博评论,看看大家都在讨论什么

嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 开发环境: python 3.8: 解释器 pycharm: 代码编辑器 模块使用: requests: 发送请求 parsel: 解析数据 jieba pandas stylecloud 如何安装python第三方模块: win R 输入 cmd 点击确定, 输入安装命令 pip install 模块名…

PLC-Recorder V3版本软件升级方法

PLC-Recorder V3软件进行了架构优化&#xff0c;包括采集服务器、客户端、授权管理等组件。升级方法与V2版本相似&#xff0c;但是也有一些变化&#xff0c;说明如下&#xff1a; 一、从V2向V3版本升级 1、退出原PLCRecorder&#xff1a;关闭右下角的图标。 2、退出打开的离线…

前端接入若依后,页面白屏问题排查

白屏问题分析 页面停留一段时间后&#xff0c;通过tab打开其他的页面&#xff0c;界面会白屏或者无法跳转&#xff1b; 白屏的时候控制台无任何报错无法跳转的时候&#xff0c;控制台会输出错误信息&#xff0c;见截图 1. 无报错白屏问题 通过查找若依的issues找到一个问题点…

C# WPF上位机开发(动态添加控件)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 写图形界面软件的时候&#xff0c;我们经常会遇到一种情况。那就是图形界面上面&#xff0c;显示的控件可能是不定的。有可能多&#xff0c;也有可…

外汇天眼:Coinbase国际交易所将启动现货市场

Coinbase宣布了Coinbase国际交易所扩张的下一阶段——退出符合条件客户的非美国现货市场。 这一最新发展旨在满足Coinbase全球用户群体的独特需求和需求&#xff0c;同时强化其扩大国际访问可信产品和服务的战略使命。 Coinbase国际交易所现货交易的推出和扩展将分阶段进行。1…

vue3+vite4中使用svg,使用iconfont-svg图标

记录一下vue3中如何使用svg图标&#xff0c;vue2中大家常用iconfont字体图标&#xff0c;现在vue3大家都又推荐svg的方式使用图表&#xff0c;包括elementplus组件库也变成使用svg方式引用图标。 1、创建svg组件 components/IconSvg.vue <template><svg class"…

avue-form 附件上传增加参数;上传前检查是否重复 覆盖或者跳过

效果 html: <el-dialog title"设备台账导入" append-to-body :visible.sync"excelBox" width"555px"><avue-form :option"excelOption" v-model"excelForm" :upload-after"uploadAfter" :upload-before…

Axure元件库使用与ProcessOn流程图

Axure元件库 自定义Axure元件库&#xff1a; 打开Axure RP软件&#xff0c;并点击菜单栏中的“元件库”选项&#xff0c;选择“新建元件库”。 在弹出的对话框中&#xff0c;选择一个文件夹来保存您的自定义元件库&#xff0c;并给它一个名称。 在Axure RP的主界面上&#x…

不需要联网的ocr项目

地址 GitHub - plantree/ocr-pwa: A simple PWA for OCR, based on Tesseract. 协议 mit 界面 推荐理由 可以离线使用&#xff0c;隐私安全

HDPE硅芯管强度高,抗压抗张和抗冲击强,外层不需其它套管

HDPE硅芯管是一种高性能的管道材料&#xff0c;具有强度高、抗压抗张和抗冲击强的特点。这种管道材料采用高密度聚乙烯&#xff08;HDPE&#xff09;作为基础材料&#xff0c;并添加了硅质增强剂&#xff0c;使得管道具有优异的力学性能和耐久性。 HDPE硅芯管的强度高&#xf…

【VS Code开发】使用Live Server搭建MENJA小游戏并发布至公网远程访问

文章目录 前言1. 编写MENJA小游戏2. 安装cpolar内网穿透3. 配置MENJA小游戏公网访问地址4. 实现公网访问MENJA小游戏5. 固定MENJA小游戏公网地址 前言 本篇教程&#xff0c;我们将通过VS Code实现远程开发MENJA小游戏&#xff0c;并通过cpolar内网穿透发布到公网&#xff0c;分…

【LeetCode刷题】-- 170.两数之和III-数据结构设计

170.两数之和III-数据结构设计 方法&#xff1a;使用哈希表 class TwoSum {Map<Integer,Integer> map;public TwoSum() {map new HashMap<>();}public void add(int number) {//key存元素&#xff0c;value为出现的次数map.put(number,map.getOrDefault(number,0…

宠物自助洗护小程序系统

提供给宠物的自助洗澡机&#xff0c; 集恒温清洗、浴液 护毛、吹干、消毒于一体&#xff0c;宠物主人只需用微信小程序源码&#xff0c;即可一键开启洗宠流程。 主要功能&#xff1a; 在线预约 在线支付 洗护记录 会员系统 宠物管理 设备管理 多商户加盟