Linux小组件:makefile

引言:

我们在Windows下编程时使用vs这种集成开发环境,里面什么编译运行调试清理等等服务都被一连串打包好了。在Linux下怎么实现呢?使用我们伟大的makefile

makefile是Linux下的一个工具,通过文本编辑器vim对文件内容编辑来操作该工具。

平常我们创建一个C语言文件,我们需要编辑它,然后编译,生成可执行文件,然后如果生成的结果错了我们还要重新编辑C语言文件,生成一个新的可执行文件等等,如果我们的工程同时有很多个C语言项目,那不是有很多重复的步骤吗?

我们用vim在一个文件里把我们需要的指令啊全部写进去,变成一个指令集。就像写代码会把函数的调用写在一个包里一样,我们只要输入一个指令就可以少写很多指令。我们的每一个项目都有不同的要求,所以我们要写不同的指令集来对应不同的项目

Target(目标) : prerequisites(依赖)
	Command(命令)

eg:
app:main.o fun.o
	gcc main.o fun.o -o app
main.o:main.c
	gcc -c main.c -o main.o -I ./inc
fun.o:fun.c
	gcc -c fun.c -o fun.o -I ./inc

#1.第一行即eg中的“app”为终极目标,下面的所有目标都是为了生成这个终极目标而编写
#2.第一行的依赖是指你的目标文件是和“依赖”有关系的,一个文件可以和很多个文件有依赖关系,用空格来分开,如:test.c test1.c test2.c
#3.当时间不对时,需要将时间调整正确之后才能使用 make 命令。
#4.makefile根据时间信息判断是否执行编译(目标文件与最终生成文件进行时间对比)。
#5.每个指令集中的目标,都可以是一个文件,也可以是一个标签,标签作为第一个会一直执行。标签不是实际的文件;(还没学到)
#6.每一个规则中的目标,不一定要有依赖。
#7.每一个规则,不一定非得有命令列表。
#8.每个规则中可以有多条命令规则,但是前面都得需要加 Tab 键。

好吧这么多规矩很容易看不懂,一定要每一步都自己实践一下

运行过程:

首先我们创建一个文件,这个文件的文件名就叫makefile/Makefile

默认的情况下,make 命令会在当前目录下按顺序找寻文件名为“GNUmakefile”、“makefile”、“Makefile”的文件。在这三个文件名中,最好使用“Makefile”这个文件名,因为,这个文件名第一个字符为大写,这样有一种显目的感觉。最好不要用“GNUmakefile”,这个文件是 GNU 的 make 识别的。有另外一些 make 只对全小写的“makefile”文件名敏感,但是基本上来说,大多数的 make 都支持“makefile”和“Makefile”这两种默认文件名。
  寻找顺序:“GNUmakefile” > “makefile” > “Makefile(推荐)”
  但是你可以指定执行某一个的MakeFile,使用make的 “-f” 和 “–file” 参数即可。比如:make -f Make.Linux 或 make --file Make.AIX

首先我们要先有一个自己的C语言文件来实操

touch test.c

然后在里面写上东西

然后用vim来写我们刚创建的makefile文件,写下图里的东西

图上代码的第一行的意思是:一个文件叫mytest,他完全依赖于test.c文件

第二行是说编译test.c文件生成的可执行文件为mytest

好了我们的指令集写好了,怎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值