今天我想研究一下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]
--------------------------------------------------------------------
话不多说,我们先通过例子来学习一下。
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]