文章目录
1 工程管理工具
makefile——make:
make #使用make执行makefile文档中的命令,代替繁琐的分步手动生成
- make:在当前目录下找makefile或Makefile
寻找makefile开头定义的最终目标文件,如果文件不存在,或者生成目标文件所依赖的文件的最后修改时间比目标文件新,执行下面的命令。 - 层次递进寻找依赖文件(类似递归),根据文件的修改时间决定是否执行命令
- make可以自动推导文件及其依赖文件的关系命令
1.1 makefile:
1.1.1 显示规则:明确
1.1.2 隐晦规则:make自动推导,简写
![]() |
makefile默认cc 命令,可省略makefile中的gcc -c命令
1.1.3 变量定义:类似宏
1.1.4 文件指示:引用另一个makefile,指定文件有效位置
include *.mk *.mk
1.1.5 注释 :# 号
1.1.6 文件搜寻
VPATH=./list:/区分路径
vpath%.h ./list
vpath%.c 目录1:目录 2
vpath% 目录3
1.1.7 清空
clean:
rm *.o
.PHONY:clean #声明clean是一个伪目标
clean:
-rm *.o #- 表示忽略可能导致的错误,继续执行
make clean #执行clean
1.1.8 示例
mian:list.o main.o
gcc -o main list.o main.o
list.o:list.c
gcc -c list.c
main.o:main.c
gcc -c main.c
最终版本:
VPATH=./list #如果文件不在同一个文件件,需要定义文件搜寻路径
val = list.o \ #变量定义
main.o #多行可使用\进行转义
mian: $(val) #使用变量代替多文件名
gcc -o main $(val)
$(val): #自动推导,可省略依赖文件
clean:
rm *.o main
1.1.9 打开file形式的makefile
make -f file
1.2 脚本.sh
- 使用脚本可以完成简单的命令
vim main.sh
#添加如下两行命令
make
rm *o #删除make过程中生成的.o文件,只保留生成的可执行文件
#修改权限为可执行文件
chmod a+x main.sh
#执行脚本
./main.sh
2 文件解压缩
2.1 分布解压缩
- 打包
tar cf xxx.tar filelist
- 压缩
gzip xxx.tar #生成xxx.tar.gz
- 解压
gzip -d xxx.tar.gz
- 解包
tar xf xxx.tar
tar c #创建
tar x #释放
tar f #指定目标为文件
tar t #仅查看
tar v #显示详细过程
2.2 一步解压缩
- 一步压缩
tar zcf xxx.tgz filelist
- 一步解压
tar zxf xxxx.tgz