当项目中包含大量源代码时,对代码一一进行手动编译显然很困难,此时就可以使用make工具来解放双手。make工具也叫工程管理工具,make工具会读取makefile文本文件,按照步骤对源代码进行编译和连接。

makefile的结构

makefile是对源文件进行编译和连接的脚本,在windows下makefile使用的便是DOS命令。makefile的结构:

程序标号S:  程序标号A  程序标号B ...

    生成S要执行命令...
//注意生成S要执行命令前要使用Tab进行空格
//示例:
//makefile
target1:   //程序段target1
    md 11  //Dos环境下md ->mkdir 即创建目录
target2:
    md 22
target3:
    rd 11  //Dos环境下rd ->rm 即删除目录
    rd 22

直接执行make命令,发现只运行了target1程序段(生成了11文件夹),说明makefile的首段是make工具的默认执行段。

若要执行其他程序段,步骤为:

执行make target2
执行make target3

可以发现执行命令分别创建了22目录,然后删除了11,22目录。

使用makefile编译程序实操:

###########################################
# 创建可执行文件exe
TSET.EXE:
	TLINK  @TESTLINK
###########################################
# 创建各个源码的.obj目标文件
PA.OBJ:
	bcc -c -ml -Ic:\bc45\include  -Lc:\bc45\lib pa.c
PB.OBJ:
	bcc -c -ml -Ic:\bc45\include  -Lc:\bc45\lib pb.c
TEST.OBJ:
	bcc -c -ml -Ic:\bc45\include  -Lc:\bc45\lib test.c

CLEAN:
        del PA.OBJ
        del PB.OBJ
        del TEST.OBJ
执行make
执行make clean

指定makefile文件名称:

make -f 自定义makefile文件名

make -f makefile1

makefile变量

makefile中可以使用变量,格式:

变量名 = 值

引用变量的格式:

$(变量名)

STR = Hello_World
Target1:
    echo $(STR)

懒惰是进步的催化剂,也是失败的引擎。