Makefile的简单介绍

Makefile 介绍

Makefile文件的作用是告诉make工具需要如何去编译和链接程序,在需要编译工程时只需要一个make命令即可,避免了每次编译都要重新输入完整命令的麻烦,大大提高了效率,也减少了出错率。

make命令的规则是:
- 如果这个工程没有编译过,则把所有的源文件进行编译链接
- 如果工程已经编译过,但是之后修改了其中的几个.c文件,那么只需要编译那些被修改的文件,并链接目标程序。
- 如果这个工程的头文件被修改了,那么只需要编译引用了这几个头文件的c文件,并链接目标程序

z只要Makefile文件写的够好,所有这一切,我们只需要一个make命令就可以完成,make命令会自动根据当前的文件修改情况来确定哪些文件需要重新编译。

一、Makefile的编写规则

Makefile的基本编写规则如下:

target ... : prerequisites ...
    command
    ...
    ... 

target表示一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签。
prerequisites表示,要生成这个target需要哪些文件或者目标文件。
command表示make需要执行的命令。(任意的shell命令)
注意
command前面的空白为一个或多个tab键,一般的gui应用都会把tab显示为4个空格。但是在写Makefile时,一定要使用tab键,而不是手动敲入空格,否则会报错。

二、一个示例

现在假设我们有5个文件,其中有两个头文件,三个.cpp文件,现在我们写一个简单的Makefile文件。

# this is make file
all : matrix.o linearequ.o \
    main.cpp
    g++ matrix.o linearequ.o main.cpp -o main.out
linearequ.o : matrix.o linearequ.cpp linearequ.h 
    g++ -c linearequ.cpp
matrix.o : matrix.cpp matrix.h
    g++ -c matrix.cpp

clean : 
    rm *.o *.out

反斜杠(\)是换行的意思,避免把东西都写在同一行。在这个示例中clean不是一个文件,而是一个动作名称,它的冒号后面没有任何东西,也就不会自动去执行其后面的命令。要执行它后面的命令,需要在make命令后面显示的加上这个动作名字,也就是clean,命令可以写成这样

make clean

于是它会执行对应的命令,删除编译所产生的.o和.out文件。

关于Makefile的内容很多,这里只是最简单的基础部分。日后再来学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值