GNU/Linux - make 60s介绍

Learn make in 60 seconds.

A programmer needs a build system. 

想想你要手动输入编译命令编译每一个源文件,而且要正确添加和管理各个option,是很麻烦的。有各种用来帮助你build的工具,比如ant、make、maven、rake等。Make就是最通用的一种。

Basics of make in 60s!

使用make工具,需要借助Makefile,就是用来描述如何build你的程序的文本文件。

Make工具实际上主要关于Dependencies 和 rules。

比如你要编写和编译一个Hello.c的源文件,正常需要:

gcc -o hello hello.c

使用Makefile文件:(注意第二行开头是tab键) (我的环境下,makefile文件名也可以用)

hello:hello.c

    gcc -o hello hello.c

第一行顶格写是一个rule,第一个是要生成的target的文件名,冒号后面是文件名,表示依赖于hello.c文件。

然后在下面添加命令,用来进行编译操作。

运行make命令:

$ make hello

gcc -o hello hello.c

make命令会检查hello.c文件是否变化,即比二进制文件hello还新,来决定是否执行这个rule,即下面的编译操作,来生成二进制文件。

如果没有makefile,也可以执行make,默认操作是使用cc进行编译和参数同名的源文件:

$ make hello

cc     hello.c   -o hello

可以在dependency list中添加更多的源文件,也可以添加更多的rule,可以创建一个名为all的任务,  一般作为默认存在的任务,来执行所有rule。

all:hello

hello:hello.c test.c

    gcc -o hello hello.c

test.o: test.c

    gcc -c test.c -o test.o

一个好主意是,使用变量来表示后面可能会改变的东西,比如CC代表编译命令。

并添加一个clean的rule,来删除所有的生成文件。

CC=clang

all:hello

hello:hello.c test.c

    $(CC) -o hello hello.c

test.o: test.c

    $(CC) -c test.c -o test.o

clean:

    rm hello test.o

$ make clean

$ make all

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜流冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值