目录
一、文件压缩与解压命令
1.1 tar cvf 文件名 ---打包命令生成.tar
1.2 tar xvf 文件名 ----解开包 生成文件
1.3 gzip +.tar 压缩 生成.tar.gz压缩包
1.4 gzip -d +.tar.gz 解压成包
1.5 直接把压缩包解压成文件 tar zxf +.tar.gz
二、Linux 系统上 C 程序的编译与调试
2.1 c程序执行需要经过四个步骤
2.2 多个文件的编译
2.3 Makefile 文件使用
2.3.1多个步骤
2.3.2一次生成
2.4 gdb调试
一、文件压缩与解压命令
tar将文件打包或者解包◼ c 创建包文件◼ f 指定目标为文件而不是设备◼ v 显示详细过程◼ t 显示包中的内容而不释放◼ x 释放包中的内容◼ z GNU 版本新加的,使得 tar 有压缩和解压的功能
1.1 tar cvf 文件名 ---打包命令生成.tar
1.2 tar xvf 文件名 ----解开包 生成文件
1.3 gzip +.tar 压缩 生成.tar.gz压缩包
1.4 gzip -d +.tar.gz 解压成包
然后+1.2的命令就能将压缩包解成两个文件
1.5 直接把压缩包解压成文件 tar zxf +.tar.gz
二、Linux 系统上 C 程序的编译与调试
2.1 c程序执行需要经过四个步骤
使用gcc编译程序分为四步:
预编译:gcc -E hello.c -o hello.i
编译:gcc -S hello.i -o hello.s
汇编:gcc -c hello.s -o hello.o
链接:gcc hello.o -o hello
也可以是一步:gcc -o hello hello.c 然后./hello
2.2 多个文件的编译
方法一:
方法二:gcc -o 可执行程序 文件.c
2.3 Makefile 文件使用
2.3.1多个步骤
2.3.2一次生成
当我们没有改变代码或者删除可执行文件还有.o文件时继续输入make会显示
删除可执行文件还有.o文件
rm -rf *.o main这行命令在makefile文件中
2.4 gdb调试
转换至debug
gcc -o main main.c -g
-g很重要
1. l //显示 main 函数所在的文件的源代码2. list 文件名:num //显示 filename 文件 num 行上下的源代码3. b 行号 //给指定行添加断点4. b 函数名 //给指点函数的第一有效行添加一个断点5. info break //显示断点信息6. delete 断点号 //删除指定断点7. disable 断点号 //将断点设定为无效的,不加断点号,将所有断点设置为无效8. enable 断点号 //将断点设定为有效的,不加断点号,将所有断点设置为有效9. r(run) //运行程序10. n(next) //单步执行11. c ( continue ) //继续执行,直接执行到下一个断点处12. s //进入将要被调用的函数中执行13. finish //跳出函数 图论科技14. q //退出调试15. p val //打印变量 val 的值16. p &val //打印变量 val 的地址17. p a+b //打印表达式的值18. p arr(数组名) //打印数组所有元素的值19. p *parr@len //用指向数组的指针打印数组所有元素的值20. finish //退出函数21 bt //函数调用栈关系
以死循环输入字符串判断是否相等为例:
vi test01.c
使用不同的命令发现debug比release要大,说明debug当中有调试信息
开始调试 输入gdb+可执行文件
加断点:b +行号
查看断点信息 info break
运行程序:r
下一步:n
打印:p
退出:q
找到问题,修改程序: