当前位置: 首页 > news >正文

【Linux】gcc从源码编译安装,修改源码,验证修改的源码

前阵子电脑使用的win10,win10过几天就让升级,烦得不行。

然后把操作系统切换到ubuntu24的样子,然后也是让升级,又烦的不行,然后切换到ubuntu server版本,感觉用起来要舒服些了,至少不会天天让升级。

回到标题,前面编译linux 内核,发现其实在电脑硬件日常使用的内核源代码数量,估计也就使用几千个,如果有些人想学习linux内核源代码太不方便,如果才能知道gcc编译时用到了哪些c文件或头文件,就需要修改gcc编译的源代码了,尤其是头文件,各种递归依赖。

当前的进展是这样的:

其实编译gcc编译器源代码不难,搞环境比较烦。

第1个箭头和2个箭头表示:新的编译器路径和源代码是gcc 14.2.0的

第3个箭头是用新编译的gcc编译/home/j/a.c这个c代码

第4个箭头是指编译源代码时打印的执行gcc编译器源代码的gcc目录下gcc.cc这个源代码的8260行,main函数,后边是编译器所在位置,第2个参数是编译的a.c所在的路径

修改的代码,就是添加了一行打印日志,用于测试功能能不能使用:

其实就是gcc在执行的时候以追加的方式打开/log.txt的这个文件,然后写入日志

现在看代码还没有找到解析头文件那里去,慢慢看源码吧,到这里也算是有一定的进展。

这里有一点需要注意,在修改gcc源代码的时候不能直接在源文件添加pringf()这类的操作,因为make时会有很多测试用例,添加了printf会导致不通过,好像gcc的源代码比内核源代码数量还要多。

这类大项目的编译框架很复杂,如果要学习Makefile啥的,要学的东西太多了。 

感谢阅读。

http://www.dtcms.com/a/193590.html

相关文章:

  • Linux文件操作系统接口介绍,以及文件描述符的本质
  • javascript —— ! 和 !! 的区别与作用
  • 技术文档不完善,如何促进知识传承
  • 动态规划问题 -- 多状态模型(买股票的最佳时机II)
  • 【GitHub加速地址】
  • 如何在 Windows 命令提示符中创建多个文件夹和多个文件
  • 关于AI人工智能的知识图谱简介
  • 高可靠低纹波国产4644电源芯片在工业设备的应用
  • 2025ICPC陕西省赛题解
  • MySQL 学习(十)执行一条查询语句的内部执行过程、MySQL分层
  • 【SPIN】PROMELA语言编程入门基础语法(SPIN学习系列--1)
  • 在自动化脚本中使用找色实现精确定位目标区域
  • GPU八卡A100使用INT4-W4A16量化大模型实验
  • 电路中零极点的含义
  • AcroForm 文档(打开时)级脚本对比 Excel VBA 参考
  • worldquant rank函数
  • 多智能体Multi-Agent应用实战与原理分析
  • 单片机-STM32部分:16、Git工具使用
  • 理解c++中关键字友元friend的作用
  • 使用nps配置内网穿透加域名解析
  • C++二项式定理:原理、实现与应用
  • nvidia-smi-Failed to initialize NVML: Driver/library version mismatch
  • Newton 迭代
  • Openlayers:如何注册一个新的坐标系统
  • 【数字图像处理】半开卷复习提纲
  • 建筑迈向绿色发展之路,楼宇自控成建筑可持续发展关键技术
  • 室内定位:热门研究方向与未解难题深度解析
  • 培训机构教务管理系统软件的功能有哪些?
  • 【c语言】动态内存分配
  • Python继承