makefile 初体验

今天我想研究一下makefile. 关于这是个什么东东,我就不详细说了,不懂Google一下什么都有了。
--------------------------------------------------------------------

话不多说,我们先通过例子来学习一下。

USER=beyondclouds

all:a1 a2 a3 a4
@echo this is all!
a1:a4
@echo this is a1!
a2:
@echo $(PWD) +'/echo'

a3:
@pwd

a4:
@echo $(USER)


运行make后,结果如下:

beyondclouds
this is a1!
/home/beyondclouds/Desktop +/echo
/home/beyondclouds/Desktop
this is all!

通过这个实验,我们能了解makefile中的一些什么东西呢?

1. all 表示运行的目标。这个是makefile的内置预设变量。makefile第一次读的.

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

这里表示要运行“目标”,必须先运行“依赖”, 但是不重复运行依赖.

3. 符号问题:

@是用于访问shell命令
$ 是用于访问变量。 $(USER),$(PWD) 一个是自定义的,一个是系统的命令PWD.

4. 反斜杠(\)是换行符的意思

5. 可以指定make 目标 执行command
比如:
输入make相当于 make all
也可以输入 make XXX 就执行目标XXX

--------------------------------------------------------------------------

通过上面的实验,我们可以写一个简单的makefile编译cpp程序.

CC=g++
all:
$(CC) -o hello Hello.cpp

我们在这个例子中可以添加 LIB INCDIRS CFLAGS 等用户自定义变量而给makefile更完善的功能.

-------------------------------------------------------------------------------

下面我们写一个模板

GXX=
LIB=
INCDIRS=
CFLAGS=

objects = main.o kbd.o \
command.o display.o

edit : $(objects)
GXX -o edit $(objects)
main.o : defs.h
.PHONY : clean
clean :
rm edit $(objects)

------------------------------------------------------------------------------
PS:以上只是我对makefile的一些基本理解,和实现一些基本的功能,当然makefile不止这么简单.
详细的介绍链接[url]http://www.stlchina.org/twiki/bin/view.pl/ScriptProgram/LearnMakefile[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值