Makefile 常用 详解

本文详细介绍了Makefile的基本格式、GNU make的工作原理,通过实例解析了目标文件、依赖文件和命令的编写。此外,还探讨了变量定义的差异,如`=`与`:=`,以及`VPATH`的使用方法。文章还涵盖了一些Makefile的高级特性,如目标变量、调试信息的打印、编译选项如`CFLAGS`,并解析了`gcc`编译选项如`-I`, `-L`, `-l`, `-g`, `-o`等的用途。" 102078400,7403711,JAVA开发中的四大加密技术,"['加密', 'JAVA开发', '安全', '密码学', '数据保护']
摘要由CSDN通过智能技术生成

1)Makefile基本格式如下:

target ... : prerequisites ...
    command
    ...
    ...
target         //目标文件, 可以是 Object File, 也可以是可执行文件
prerequisites  //生成 target 所需要的文件或者目标
command        //make需要执行的命令 (任意的shell命令), Makefile中的命令必须以 [tab] 开头

显示规则       //说明如何生成一个或多个目标文件(包括 生成的文件, 文件的依赖文件, 生成的命令)
隐晦规则       //make的自动推导功能所执行的规则
变量定义       //Makefile中定义的变量
文件指示       //Makefile中引用其他Makefile; 指定Makefile中有效部分; 定义一个多行命令
注释           //Makefile只有行注释 "#", 如果要使用或者输出"#"字符, 需要进行转义, "\#"

kconfig语法: https://www.jianshu.com/p/aba588d380c2

2)GNU make 的工作方式
读入主Makefile (主Makefile中可以引用其他Makefile)
读入被include的其他Makefile
初始化文件中的变量
推导隐晦规则, 并分析所有规则
为所有的目标文件创建依赖关系链
根据依赖关系, 决定哪些目标要重新生成
执行生成命令
========================================================================
#Makefile举例
{
objects = main.o input.o calu.o

main:$(objects)
    gcc –o main $(objects)
%.o:%.c
    gcc –c $<
.PHONY:clean
clean:
    rm *.o
    rm main
解释:
①第一行,‘#’用于注释
②第二行,定义了变量objects,并赋值。
③第三行,目标是main,需要依赖变量objects指定的文件。
④第四行,gcc命令执行,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值