随笔 - 66  文章 - 0  评论 - 0  阅读 - 22203

Makefile文件的编写

                                                          Makefile文件的编写

目录

                                                          Makefile文件的编写

1. 语法格式

2. Makefile文件编写举例

3. Makefile文件中变量的使用

4. make命令的用法

5. 实际例子举例

大家可以自己在linux系统下操作训练一下。


1. 语法格式

#注释

目标文件: 依赖文件列表

<tab>命令列表

...…

注意事项:第一行命令不需要以<tab>键开始, 从第二行命令开始必须要以<tab>键开始, <tab>键告诉make程序该行是一个命令行。

 

2. Makefile文件编写举例

注意:install、clean两个命令是不会执行的

 

3. Makefile文件中变量的使用

定义变量一般是在Makefile文件的顶部来定义, 且变量名是大写。

形式如下:

变量名 = 变量值

如果要引用此变量, 用一个$符号来引用变量, 变量名需要放在$符号后的括号里。

 

make工具还有一些特殊的内部变量,它们根据每一个规则内容定义。

$@: 指代当前规则下的目标文件列表。

$<: 指代依赖文件列表中的第一个依赖文件。

$^: 指代依赖文件列表中的所有依赖关系。

$? : 指代依赖文件列表中新于对应目标文件的文件列表。

 

2中的例子简化重写如下:

OBJ = main.o test1.o test2.o #无<tab>键

test: $(OBJ)#无<tab>键

    gcc -o $@ $^

    main.o: main.c head1.h head2.h

    gcc -c $^ -o $@
    
    test1.o: test1.c head2.h

    gcc -c $^ -o $@

    test2.o: test2.c head3.h

    gcc -c $^ -o $@

    install:

    cp test /home/tmp

    clean:

    rm -f *.o

大家能明显感觉代码量减少了!!!

 

4. make命令的用法

大家可以自己输入make --help查看, 这里需要说明一下使用make工具的时候, 习惯把makefile文件命名为Makefile, 也可以命名为其它的名字, 但这时就不能直接用make命令, 需要用以下格式:

make -f makefile文件名。

 

5. 实际例子举例

#C1.c

#include <stdio.h>

#include "global.h"

int main()

{

printf("%d\n", g+1);

return 0;

}


#global.h

#ifndef Initialize

int g = 10;

static int init = 1;

#endif


#Makefile
OBJ = C1.o #无<tab>键

test: $(OBJ) #无<tab>键

    gcc -o $@ $^

    C1.o: C1.c global.h

    gcc -c $^ -o $@

    clean:

    rm -f *.o

 

大家可以自己在linux系统下操作训练一下。

 

 

posted on   Daniel_lmz  阅读(173)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示