三个模式:命令模式 文本模式 底行模式
yum :instell 安装 remove 卸载
gcc -o执行后生成文件命名
gcc 1.c -o fst.out
-E预编译
-S汇编
-c生成机器码
Linux 中 静态库:.a;动态库:.so
Linux默认动态库,想要静态库编译的时候加上 - static
一般来说,linux下编译后的文件是形成release发行版本,如果想要debug发行版本就要在在编译时加上-g指令
gdb指令
n F10
s F11
display -变量 常查看变量变化
P -变量 临时查看当前数据
display 变量名 查看监视数据
b 行号 :打该行号断点
d 删除断点,看的是断点编号
disable 禁用断点
enable 启用断点 编号
info 查看断点
c(continue)运行到下个断点
finish 完成该函数
until 运行到当前函数指定行
bt查看函数堆栈
make
make是指令,makefile是文件中有依赖关系与依赖方法
在makefile文件中写
make [目标方案];
如果没有写目标方案,就从上到下执行第一条依赖关系。
# make
//makefile中内容:
test:test1.o //执行这条依赖关系,如果依赖方未生成就会向下继续,直到允许执行才会放回
gcc -o $@ $^
test.o:test2.s
gcc -c -o $@ $^
test.o:test.i
gcc -S -o $@ $^
test.i:test3.c //存在test.c文件开始编译然后向上,如果有一个地方没有依赖文件就报错
gcc -E -o $@ $^
make会比对依赖文件与目标文件的modify时间前后,
如果依赖文件的时间早于目标文件,那么就不会生成新的目标文件,touch 已存在文件可以更新时间
如果依赖文件的时间早于目标文件,那么就会生成新的目标文件,
.PHONY:目标文件:执行不在查看文件是否新旧,总是目标文件被执行
然后再外面就可以直接使用make调用里面的指令
[zjy@VM-12-17-centos class3]$ vim Makefile
[zjy@VM-12-17-centos class3]$ make
gcc mytest.c -o mytest -std=c99
[zjy@VM-12-17-centos class3]$ ls
Makefile mytest mytest.c mytest_nostatic mytest_static
1: Makefile+ ⮀
1 mytest:mytest.c
2 gcc mytest.c -o mytest -std=c99
3
4 .PHONY:clean//.PHONY 类似于类型关键字,保证clean总是被执行
5 clean://必须顶格写
6 rm -f mytest //必须是tab