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

编译方法及工具

编译的四个步骤:

预处理 #开头内容,展开头文件,替换宏定义,不会进行语法检查。

gcc -E xx.c -o xx.i

编译检查语法错误,词法错误,将.i文件转换成.s汇编文件。

gcc -S xx.i -o xx.s

汇编将汇编文件转换成二进制文件(不可执行)

gcc -c xx.s -o xx.o

链接链接库文件,将不可执行的二进制文件转换成可执行的二进制文件。

gcc xx.o -o xx

gcc xx.c 默认生成a.out

-o: 生成一个名字可执行文件

  1. gdb调试工具

gcc -g xx.c 生成 a.out

gdb a.out

r: 运行代码

l: 查看文件

b 行号或者函数名:添加断点

info b:查看断点情况

d num(断点编号):删除断点

p 变量名:查看变量的值

s/n: 单步运行,s会进入子函数顺序执行;单步跳过,n不会进入子函数

c: 执行到下一个断点的位置

help:帮助

q: 退出

步骤:代码写好后,先通过gcc -g进行编译代码,没有错误后,可以通过gdb a.out进行调试,输入l查看文件内容,通过b设置断点,输入r进行运行,n或s进行单步调试,q退出

meke编译工具

make:工程管理器,顾名思义,是指管理较多的文件

make工程管理器也就是个“自动编译管理器”,这里的“自动”是指它能构根据文件时间戳自动发现更新过的文件而减少编译的工作量,同时,它通过读入Makefile文件文件的内容来执行大量的编译工作。

Makefile或makefile时make读取的唯一配置文件。

makefile根据以下步骤编写:

gcc -c xx.c -o xx.o

gcc xx.o -o xx

计算机的组成

输入设备、输出设备、存储器、运算器(ALU)、控制器

01二进制组合 机器码

  1. 输入设备:将其他信号转换为计算机可以识别的信号(电信号 1 0 0 1 )。
  2. 输出设备:将电信号(0、1)转为人或其他设备能理解的信号。
  3. 运算器:CPU对信息处理和运算的部件,常进行算术运算和逻辑运算,其核心是算术逻辑单元ALU,CPU中用各种各样的数字电路搭配成各种各样的运算电路,如:加、减法等。
  4. 控制器:整个计算机的指挥中心
  5. 存储器:存放程序和数据的部件,也是计算机能够实现“存储程序控制”的基础。
    1. ROM(Read Only Memery)只读存储器
      1. 掉电不丢失
      2. 读取速度慢
      3. 硬盘、U盘
      4. 存储程序,ROM也叫程序存储器
    2. RAM(RAndom Memery)随机存储器
      1. 掉电丢失
      2. 速度快
      3. 内存条
      4. 存储临时变量和程序运行产生的数据

http://www.mrgr.cn/news/57864.html

相关文章:

  • gitlab不同账号间·仓库转移
  • 见证 RTE 的新篇章丨 RTE 年度场景 Showcase 暨第四届 RTE 创新大赛开幕
  • 使用原生HTML和css制作一个箭头步骤条
  • K8S调度不平衡问题分析过程和解决方案
  • 2024 睿抗机器人开发者大赛(RAICOM)-【网络安全】CTF 部分WP
  • 手机玩使命召唤21:黑色行动6?GameViewer远程玩使命召唤教程
  • 【无标题】Django转化为exe,app
  • 论文阅读与写作入门
  • java算法OJ(5)归并排序
  • 【机器学习】K-means聚类算法应用
  • [Python学习日记-54] 软件开发目录设计规范
  • 三大秘籍 HubSpot AI让你的业务如鱼得水
  • B/S架构的诊所云his源码,云门诊系统,支持二次开发,源码合作交付
  • 获取 Excel 文件中的所有工作表名称,可以通过 OleDbConnection 获取表架构
  • 关于bp抓不到本地包
  • riscv uboot 启动流程分析 - SPL启动流程
  • Cursor零基础小白教程系列「进阶」 - Cursor AI代码生成详解(Cmd+K)
  • 喜欢的散文《在更热烈的风里相遇》李汉荣精选散文集
  • 从“Hello World”到“Success” —— 1024程序员节的感悟与成长
  • 电脑必备快捷键大全
  • 【C++】红黑树万字详解(一文彻底搞懂红黑树的底层逻辑)
  • “面试造火箭,工作拧螺丝”,程序员月薪多少?
  • 医院信息化与智能化系统(7)
  • Word中Normal.dotm样式模板文件
  • Docker 下备份恢复oracle
  • 【Jenkins】解决在Jenkins Agent节点容器内无法访问物理机的docker和docker compose的问题