Makefile命令行指定参数传递到C语言文件的4个步骤、2类关键字和2种变量

本文介绍了如何在Makefile中使用ifeq,elseifeq和ifdef进行条件判断,根据命令行传递的变量或配置来设置C语言的宏定义,以实现不同平台和调试模式下的编译差异。作者还强调了多层传递机制在工程设计中的应用和灵活性。

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

要点:

  • make 命令行使用 xxx=abc传递,本质是在makefile中定义了makefile的变量。使用的判断关键字是 ifeq 以及 else ifeq和else
  • make 传递给C语言的配置本质是宏定义,使用的判断关键字是 if defined或者 ifdef ,elif definded

核心:
make ifeq 与 else ifeq
c ifdef 与 else ifdef。并且ifdef = if defined

Step1: 命令行定义

make CFG_TEST_VAR=linux

Step2: Makefile中使用

makefile中可以根据配置进行条件判断,条件判断中可以根据条件配置C语言的cflags传递给C文件,但是Makefile的变量不能直接传递

# 如果DEBUG参数被传递,则打印一条消息
ifeq ($(CFG_TEST_VAR),linux)
    $(info "Debug mode is enabled.")
    DEBUG_FLAG = -g
endif
 
# 其他规则和目标
mytarget:
    gcc myprogram.c -o myprogram $(DEBUG_FLAG)

如果有多个分支:

# 如果DEBUG参数被传递,则打印一条消息
ifeq ($(CFG_TEST_VAR)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值