Makefile命令 - 学习

本文介绍了如何在Makefile中将.proto文件编译和源文件编译整合成一步操作。首先,通过两步分别编译.proto文件和源文件,然后探讨了一步编译的两种方案:方案一利用字符串匹配获取.pb.c文件路径,方案二将$(OUT_DIR)/%.pb.c设为目标。通过这两种方法,可以实现执行单一make命令完成所有编译工作,并附带了测试demo和参考链接。
摘要由CSDN通过智能技术生成

在开发中,源文件依赖于.proto文件编译后的.pb.c文件,通过一次命令就能执行编译.proto文件以及编译源文件的动作:

两步编译proto文件和源文件

1. 编译.proto文件
PROTO_DIR = ./proto
OUT_DIR = ./out

mkproto: mkout//将./proto/%.proto文件编译成./out/%.pb.h和./out/%.pb.c
        $(PROTOC) $(PROTOC_OPTS) --proto_path=$(PROTO_DIR) --nanopb_out=$(OUT_DIR) $(PROTO_DIR)/*.proto

mkout://没有out目录则创建
        mkdir -p $(OUT_DIR)
2. 编译源文件
CSRCS = main.c
CSRCS += $(wildcard $(OUT_DIR)/*.pb.c)
CSRCS += $(NANOPB_DIR)/pb_decode.c
CSRCS += $(NANOPB_DIR)/pb_encode.c
CSRCS += $(NANOPB_DIR)/pb_common.c
demo : $(CSRCS)
        $(CC) $(CFLAGS) -o $@ $^

如上先执行make mkproto,然后执行make demo可以成功编译,输出demo文件

一步编译proto文件和源文件

如上是两步不同独立的命令执行,就想着是否可以把两步合成一步来操作,如下:

all: mkproto demo
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值