加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

makefile

发布时间:2020-12-16 10:49:22 所属栏目:百科 来源:网络整理
导读:make命令 选项及参数 常用的3个选项 -k: make命令发现错误时继续执行,这个选项操作可以一次发现所有未编译成功的源文件。 -n: make命令输出将要执行的操作步骤,而不是真正执行这些操作。 -ffilename: 告诉make命令将哪个文件作为Makefile文件,未使用此选

make命令

选项及参数

常用的3个选项

-k: make命令发现错误时继续执行,这个选项操作可以一次发现所有未编译成功的源文件。

-n: make命令输出将要执行的操作步骤,而不是真正执行这些操作。

-f<filename>: 告诉make命令将哪个文件作为Makefile文件,未使用此选项情况下,标准版make命令会在当前目录下先寻找makefile,如果没有继续寻找Makefile文件。如果是Linux系统下,使用的可能是GNUMake,这个版本,它将首先查找GNUmakefile文件。

依赖关系

规则写法:先写目标名称,然后紧跟冒号,接着空格或制表符tab,最后是隔开的文件列表(这些文件用于创建目标文件)。

Myapp: main.o test.o

main.o: main.c main.h

test.o: test.c test.h

规则

makefile文件中空格和tab是有区别的。规则所在行必须以tab开头,用空格是不行的,Makefile文件中某行以空格结尾,也可能导致make命令执行失败。

?

规则都包含一个简单的命令,该命令也可以在命令行上执行

Myapp: main.o test.o

?????? gcc -o Myapp main.o test.o

main.o: main.c main.h

?????? gcc -c main.c

test.o: test.c test.h

?????? gcc -c test.c

?

注释

Makefile中注释以#号开头

MACRONNAME=value 定义宏

$( MACRONNAME) 调用宏

CC = gcc

CXX = g++

Myapp: main.o test.o

?????? $( CC) -o Myapp main.o test.o

main.o: main.c main.h

?????? $( CC) -c main.c

test.o: test.c test.h

?????? $( CC) -c test.c

?

make命令时给出宏定义

make “CC = gcc”

make内置特殊的宏定义

$? 当前目标所依赖的文件列表中比当前目标文件还要新的文件

[email?protected] 当前目标的名字

$< 当前依赖文件的名字

$*? 不包括后缀名的当前依赖文件的名字

?

多个目标

(未完待续)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读