openwrt 添加自定义编译项

项目场景:

项目场景:最近需要在编译一个代码的时候,在配置页面去做一个配置,比如我的MQTT代码可以对接几个物联网平台,但是我实际上只需要对接一个平台。这个时候,我就需要在配置页面选定我要对接哪个平台。


问题描述

如何在make menuconfig配置页面中添加编译项,以及如何通过编译项,来引导代码编译一部分功能而不是全部?


解决方案:

修改软件包的makefile 和代码宏定义

#上层界面
define Package/$(PKG_NAME)
  CATEGORY:=XND modules
  SUBMENU:=MQTT LINK modules
  TITLE:=$(PKG_NAME) module
  DEPENDS:=+libc +libuci +libdebug +libubox +ubus +libjson-c +libc  +libmosquitto 
endef

#帮助我们可以在配置页面出现ThingsBoard 和 Jetlink两个选项
define Package/$(PKG_NAME)/config
	menu "Select MQTT Link options"
		config ThingsBoard
			bool "ThingsBoard support"
			default n
			help
			   ThingsBoard MQTT  support.
		config Jetlink
			bool "Jetlink support"
			default y
			help
			  Jetlink MQTT support.
		config Normal
			bool "Normal support"
			default n
			help
			  Normal MQTT support.
	endmenu
endef
#这个帮助我们在编译的时候加上CONFIG_Jetlink 或者CONFIG_ThingsBoard宏定义
ifdef CONFIG_Jetlink
  CFLAGS+=-DCONFIG_Jetlink
endif

ifdef CONFIG_ThingsBoard
  CFLAGS+=-DCONFIG_ThingsBoard
endif

代码修改

//代码中设置宏定义即可完成对接不同的平台的配置
#ifdef CONFIG_Jetlink
    rc = Jetlink_connect(&rtu_net);
    if (rc < 0)
    {
        goto error;
    }
#elif CONFIG_ThingsBoard
    rc = ThingsBoard_connect(&rtu_net);
    if (rc < 0)
    {
        goto error;
    }
#endif

效果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

欢迎提问,有问必答。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值