gcc gdb makefile

概述:

Linux下C语言编程常用的编辑器是vim,编译器一般用gcc,编译链接程序用make,跟踪调试一般使用gdb,项目管理用makefile。

gcc简介:

GCC是以GPL许可证所发行的自由软件,也是GNU计划的关键部分。GCC的初衷是为GNU操作系统专门编写一款编译器,现已被大多数类Unix操作系统(如Linux、BSD、MacOS X等)采纳为标准的编译器,甚至在微软的Windows上也可以使用GCC。GCC支持多种计算机体系结构芯片,如x86、ARM、MIPS等,并已被移植到其他多种硬件平台 。GCC原名为GNU C语言编译器(GNU C Compiler),只能处理C语言。但其很快扩展,变得可处理C++,后来又扩展为能够支持更多编程语言,如Fortran、Pascal、Objective -C、Java、Ada、Go以及各类处理器架构上的汇编语言等,所以改名GNU编译器套件(GNU Compiler Collection)。

1. vim编辑hello.c

2. 指令结

gcc -E hello.c -o hello.i # 预处理(生成.i文件)
gcc -S hello.i -o hello.s #汇编(生成汇编代码.s文件)
gcc -c hello.s -o hello.o #编译(生成一个.obj文件)
gcc  hello.o -o hello     #链接(生成一个.elf文件)

此时我们可以看到分别生成了hello.c hello.i hello.s hello.o hello 5个文件。

3. 查看运行结果

输入指令

$ ./hello

我们可以看到输出“hello world!”。

4. 使用gdb调试函数调用

调试命令:
  run 运行程序 **list(l) ** 查看程序 break(b) 函数名 在某函数入口处添加断点 break(b) 行号 在指定行添加断点 break(b) 文件名:行号 在指定文件的指定行添加断点 info break 查看所有设置的断点 **delete 断点编号 ** 删除断点 next(n) 单步运行程序(不进入子函数) step(s) 单步运行程序(进入子函数) continue(c) 继续运行程序 print(p) 变量名 查看指定变量值 set var=value 设置变量的值 quit(q) 退出gdb。

使用gdb调试首先生成一个sum.exe文件 ,输入命令:

$ gcc -g hello.c -o hello.exe

查看代码 list

 设置断点 break

运行程序 run

在这里插入图片描述

 继续程序 continue

在这里插入图片描述

5. gcc过程改为makefile管理

Makefile介绍:
  用Makefile文件做工程管理; 使用GNU Make工具来管理程序是每个Linux工程师必须掌握的技能; Make能够使整个程序的编译、链接只需要一个命令(make)就可以完成; Make的工作主要依赖于一个叫作Makefile的文件; Makefile文件描述了整个程序的编译,链接等规则。 其中包括:工程中的哪些源文件需要编译以及如何编译,如何最后产生我们想要得可执行文件。

  

 最后我们可以看到运行结果,输出“ hello world!”。 

 参考:

(9条消息) 如何编写一个Makefile文件(手把手的教你)_Wyatt_zhai的博客-CSDN博客_makefile文件编写

makefile从入门到放弃——博主吐血整理的笔记_万里羊的博客-CSDN博客

GCC详解_isstack的博客-CSDN博客_gcc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值