【makefile】gcc选项参数-D,-M以及makefile相关命令

本文详细介绍了GCC编译选项-D的作用,用于宏定义,类似于C语言的全局#define。同时探讨了-M选项在预编译时生成依赖关系规则的功能。还讲解了Makefile中的实用函数strip、wildcard、notdir和patsubst,例如strip用于去除空格,wildcard获取匹配的文件路径,notdir剥离目录信息,patsubst进行模式替换。最后提到了-fno-strict-aliasing选项在GCC优化时避免类型别名问题的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


$(strip STRINT) 
函数名称:去空格函数—strip。 
函数功能:去掉字串(若干单词,使用若干空字符分割) “STRINT”开头和结尾的
空字符,并将其中多个连续空字符合并为一个空字符。 
返回值:无前导和结尾空字符、使用单一空格分割的多单词字符串。 
函数说明:空字符包括空格、[Tab]等不可显示字符。 
示例: 
STR =        a    b c      
LOSTR = $(strip $(STR)) 
结果是“a b c”。 
“strip”函数经常用在条件判断语句的表达式中,确保表达式比较的可靠和健壮

 

gcc命令支持-D宏定义,相当于C中的全局#define:

gcc -D name

gcc -D name=definition

Makefile中可以定义变量(和宏很像),但是是给make解释器用的,对所编译的文件完全没有作用。

 

翻译自GCC的帮助文档:

-M 不是输出预编译过程的结果,而是输出一个用于make的规则,该规则描述了这个main源文件的依赖关系。预编译器输出的这个make规则包含名字与原文件相同的目标文件,冒号和所有include文件的名字。这些include文件主

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞翔的鲲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值