概述:
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文件编写