ARM学习之路(四) GCC、GDB、makefile的使用..(by 星空武哥)

           一GCC的使用

1. Gcc的四个阶段: 1)预处理 2)编译 3)汇编 4)连接

2. Gcc文件的后缀类别: (.c文件):C语言代码 .(a文件):目标文件构成的库(.C文件或者.cc):C++源代码(.h文件):头文件(.i文件):已经预处理过的C源代码(.ii文件):已经预处理过的C++源代码(.o文件):编译后的目标文件(.s):汇编源代码文件(.S文件):经过预编译的汇编语言代码文件

3. Gcc编译选项 (1)-o:确定可执行文件的名字,如:gcc hello.c –o hello ,生成一个hello文件。(2)-c:只编译,不连接成可执行文件,编译器只是生成.o为后缀的目标文件。(3)-g:产生调试工具(GNC的gdb)所必要的符号信息。(4)-O:对程序进行优化编译、链接,会使用整个代码在编译、链接过程中进行优化(-O2比-O更优化)。(5) –I:指定目录加入到程序头文件的目录列表中。如:gcc –I/usr/include hello.c –o hello (6)-static:静态链接库文件如:gcc –static hello.c –o hello (7)-Wall:生成所有警告信息。(8)-w :不生成任何警告信息。(9)-D:相当于使用define。如 gcc –D hello.c –ohello

                二GDB

1. GDB主要是调试所用,先用gcc –ghello.c –o hello 生成调试的文件。

2. 两种启动方式(1)gdb hello 。 (2)gdb  ;file hello

3. GDB 命令(注意括号内为快捷键):1)list(l)查看程序 。2)break(b)+函数名 :在程序入口添加断点。 3)break (b)+行号 在指定行添加断点。4) break (b)+文件名:行号   在指定文件的指定行添加断点。 5)break (b)行号if条件   当条件条件为真时,在指定断点处生效,如b 10 if i=3  意思是在第10行当i=3是断点生效。6) info b 查看断点信息   7)delete +断点编号删除断点。 8) run 运行程序  9)next 但不运行程序(不进入子函数)10) step 但不运行(进入子函数) 11) continue  继续运行  12)print+变量名  查看指定变量值  13) finish  运行程序,知道当前程序结束   14) watch +变量名  对指定变量进行监控 15)quit 退出gdb  

            三 makefile的使用

1  Make可以是整个软件工程的编译、链接只需要一个命令就可以完成。执行时需要一个命名为makefile的文件。

2  make的规则:

target :prerequisitescommand

   目标  :  依赖          命令

  hello: hello.c 

@gcc –c hello.c–o hello

 @ 表示没有回显

$^ 代表所有的依赖文件

$@ 代表目标

$< 代表第一个依赖文件

3伪目标  makefile中没有依赖的,只有执行动作的目标称为“伪目标”(phony targets)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值