Makefile中自定义宏进行条件编译

c c++源程序生成可执行文件的过程一般经过编译和链接的过程。编译就是把源程序编译生成中间文件,也就是.obj(Win)。这个过程中检查语法是否正确,函数和变量是否正确声明(对于后者,要制定路径正确的头文件)。所以如果函数只在头文件中正确声明而不在源文件中实现的话是可以通过编译的。当然如果不对函数进行实现,链接过程中会出现错误。

编译的过程中我们可以通过添加编译开关控制我们的代码编译过程。

以下是例子程序

int main(void)

{

#ifdef DEBUG

printf("debug");

#endif

}


Makefile文件

CC = gcc

TARGETS = main

SRCS = main.c

OBJS = main.o

COMFLAGS = -DDEBUG

.PHONY:clean

$(TARGETS):$(OBJS)

$(CC)  $^ -o $@

%.o:%.c

$(CC)  $(COMFLAGS ) -c $^ -o $@   #添加编译开关一定要在这个过程中,如果把编译开关放在上边的过程是没用的

clean:

rm -f $(TARGETS) $(OBJS)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值