Linux下的MakeFile文件

MakeFile是什么

Makefile是Linux下的文件管理工具,本质是文件,加载运行需要make命令,make命令可以认为是执行shell脚本文件
我们创建一个Makefile文件,注意,在Linux中,M首字母大小写不区分——调用vim makefile
makefile内容是main的gcc的过程,要分步骤写,和shell脚本文件把文件编译过程记录下来,会根据最后修改的文件来智能决定需要编译哪些文件
假设要编译gcc –o gcc -o Server Server.o File.o(后面两个是依赖文件)
那么Makefile文件中以链接过程为第一行,罗列出Server需要的.o文件,第二行用tab键缩进,写出gcc 链接代码
下来就是列举依赖文件的编译指令,格式和第一行相同(也可省略,用系统默认的cc编译)也可以只留下标识符+: 等同于一个变量
最后是相关操作,写在clean:下,例如rm *.o Server,可以用变量替换 ,使用时$(val)即可

Server:Server.o File.o
	gcc -o Server  Server.o File.o
Server.o:Server.cpp
	gcc -c Server.cpp
File.o:Flie.cpp
	gcc -c Client.cpp
clean:
	rm *.o Server

如果省略依赖参数的编译过程,则需要让系统去推演生成依赖参数,在Linux之中默认的编译方式是gcc
可以使用变量来接受参数列表,参数的类型都是string类型,比如说val = Server.o File.o,使用val的方法是$(val),每次有更新只要修改val即可,其他的可以用不用管,因为这样调用val的地方修改都会被应用。
简化后的版本:

VPATH = ./CSBaiduCloud
val = Server.o File.o
Server:$(val)
	gcc -o Server  $(val)
$(val):

cba = Client.o File.o
Client:$(cba)
	gcc -o Client $(cba)
$(cba):

lba = File.o
File:$(lba)
	gcc -o File $(lba)
$(lba):

clean:
	rm *.o Server

其中,VPTH是指定环境变量,如果在默认的环境没找到则会去VPTH指定的路径去找,再提几点:
vpath命令 %.c dir 在dir目录下找所有.c文件,一般默认在本目录下查找
make本身是运行文件 也可以用make –f 指定文件生成
makefile的注释和shell相同为#号,写在clean下的操作在bash界面是输入命令make clean可以执行,其他情况直接运行make即可。
makefile会自动推演是否需要再次生成文件,当你调用了make后,系统会先查看你无主文件或者依赖文件的更新时间比主文件更新,则判断需要重新生成,对每个依赖文件都会这样判断,依次生成.o文件,最后进行编译。
可以说makefile大大提高了开发效率,只要gcc过程正确,那么大工程中一次性做完所有编译连接过程就不再是不可能事。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值