Linux系统

您所在的位置:网站首页 linux中makefile Linux系统

Linux系统

2022-12-30 10:39| 来源: 网络整理| 查看: 265

1. Makefile基本使用

命令行的make命令支持解析makefile和Makefile文件。 如果我们编写的规则文件不是makefile或者Makefile文件,那么需要使用-f选项指定。

[wbyq@wbyq linux_c]$ make -f

Makefile文件内部是以目标作为单位执行规则顺序的。

在Makefile文件里使用shell命令行的命令时,需要使用TAB键开头。

app:app.c gcc app.c -o app

:

gcc app.c -o app

什么是依赖文件? 就是在生成这个目标之前,需要得到的文件。

2. make指定目标执行

Makefile文件里可以有多个目标文件,我们在命令行执行make命令默认执行Makefile文件里的第一个目标。如果需要执行指定的目标,需要在make命令后面加上执行的目标名称即可。

[wbyq@wbyq linux_c]$ make pwd /mnt/hgfs/linux-share-dir/linux_c [wbyq@wbyq linux_c]$ make app2 ls a.out app.c Makefile makefile_1234567 sum [wbyq@wbyq linux_c]$ make app3 touch 123.c touch 456.c [wbyq@wbyq linux_c]$ make app4 rm 123.c rm 456.c [wbyq@wbyq linux_c]$ make app1 app2 app3 app4 pwd /mnt/hgfs/linux-share-dir/linux_c ls a.out app.c Makefile makefile_1234567 sum touch 123.c touch 456.c rm 123.c rm 456.c [wbyq@wbyq linux_c]$3. 隐藏makefile文件执行命令

方法1: make -s 方法2: 在执行的命令前面加上@符号

4. 示例1: 编译一个简单的工程

使用显式规则编写Makefile文件,编译一个工程。

[wbyq@wbyq linux_c]$ ls app.c Makefile sum.c sum.h [wbyq@wbyq linux_c]$ make -n gcc sum.c -c gcc app.c -c gcc sum.o app.o -o app [wbyq@wbyq linux_c]$ make gcc sum.c -c gcc app.c -c gcc sum.o app.o -o app [wbyq@wbyq linux_c]$ ./app sum_val=300 [wbyq@wbyq linux_c]$ 5. 示例2: 编译一个简单的工程

使用自动化编译符号优化Makefile文件,编译一个工程。

6. 示例3: 编译一个简单的工程

使用隐式规则编写Makefile文件,编译一个工程。

[wbyq@wbyq linux_c]$ ls app.c Makefile sum.c sum.h [wbyq@wbyq linux_c]$ make -n cc -c -o app.o app.c cc -c -o sum.o sum.c gcc app.o sum.o -o app [wbyq@wbyq linux_c]$ make cc -c -o app.o app.c cc -c -o sum.o sum.c gcc app.o sum.o -o app [wbyq@wbyq linux_c]$ make make: “app”是最新的。 [wbyq@wbyq linux_c]$ make cc -c -o app.o app.c cc -c -o sum.o sum.c gcc app.o sum.o -o app7. 特殊变量的使用编写的Makefile文件: CC=gcc #指定编译器 VPATH=./main:./sum #指定隐式推导时搜索的路径 CFLAGS=-I ./sum #指定编译器编译是自动增加的选项参数 OBJ=app.o sum.o #依赖文件 app:$(OBJ) $(CC) $^ -o $@ .PHONY:clear #声明伪目标 clear: rm *.o app


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3