linux-3.基础-gcc/gdb/makefile

大纲:
1.gcc编译
2.gdb调试
3.makefile工程
一.gcc编译(gun c compiler)
1.gcc编译可以将c,c++语言的源程序汇编程序编译,链接成可执行文件(linux中可执行文件没有固定的后缀,根据文件的属性划分)
2.gcc编译分为四个阶段
(1)预处理pre-processing(2)编译compiling(3)汇编assembling(4)链接linking
3.gcc通过后缀区分文件别名
.c-c语言源代码文件
.a-库文件
.C/.cc/.cxx-C++源文件
.h-头文件
.o-目标文件
.s汇编语言的源代码
4.编译和运行程序 #gcc hello.c -o hello =>#./hello加入不写编译生成的文件名称,则是#./out
5.gcc基础语法gcc [option][filename]
option:
-o 确定编译出来的可执行文件的名称
-c 只编译不连接成可执行文件,由.c->.o
-g 生产调试工具(gdb)所必要的符号信息
-O 对程序进行优化编译和链接
-O2 优化比O好
-Idirname
-Ldirname
-lname
-static静态链接库文件 静态.a,动态.so
-Wall 生成所有警告信息
-w 不生成任何警告信息
-DYES 定义MACRO宏,等效于在程序中#define MACRO

二.GDB程序调试
1.GDB功能
(1)启动被调用程序(2)让被调试程序在指定位置停止(3)在程序停止后检查程序状态
2.GDB调试
编译 gcc -g test.c -o test
启动GDB gdb test(也可以不写文件名)
在函数处打断点 break main
运行 run
单步执行 next 进入子函数 step
连续运行 continue
3.GDB命令
启动GDB (1)gdb 文件名(2)gdb ->file 文件名
list 查看程序
break 函数名/行号 /文件名:行号/行号 if 条件
info break 查看所有的断点
delete 断点编号 删除
print 变量名 查看指定的变量
watch 变量名 对指定的变量进行监控
quit 退出

三.简单的makefile编写
make用来构建和管理自己的软件工程的
makefile文件描述了整个工程的编译链接的规则
1.makefile规则:如何生成一个或者多个目标文件
targets(目标):prerequisites(依赖)
command(命令)
编写makefile文件所有的文件必须要以[TAB]键开始
2.make默认在当前目录下寻找makefile或者Makefile文件或 make -f 文件名
3.伪目标
.PHONY:clean
clean:
rm -f hello main.o fun1.o fun2.o
4.变量
obj=main.o fun1.o fun2.o
hello: (obj)gcc ( o b j ) g c c (obj) -o hello
自动化变量
: 代 表 所 有 的 依 赖 文 件 @:代表目标
$<:代表第一个依赖文件
5.注释 #
取消回显 @

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值