makefiel -D 选项

在处理dnsmasq代码时,为实现可配置的欺骗DNS请求功能,需通过make menuconfig设置宏。但在MTK方案中,应用层和内核的配置文件不同,导致dnsmasq代码无法识别应用层的配置。通过在dnsmasq的Makefile中利用-D选项添加宏定义,可以关联应用层的配置,从而根据CONFIG_USER_FAKE_DNS宏决定是否开启DNS欺骗功能。

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

在处理dnsmasq代码时,要添加一个宏来隔开欺骗DNS请求的功能,而这个宏又需要是可配置的,即通过make menuconfig来进行配置,而MTK方案里面针对应用层和内核都有一个自动生成的配置文件,内核用"linux/autoconf.h"  //kernel config 而应用层是用"config/autoconf.h"文件来保存当前打开的配置,而我在给dnsmasq.h文件包含autoconf.h文件时,一直报错,一直提示没有autoconf.h这个文件或是目录,导致在应用层打开的宏在dnsmasq代码中没有效果,而在其Makefile文件中将autoconf.h文件的绝对路径加入,仍然是提示没有找到文件的错误,后来查看其Makefile,在此文件中有一个-D 选项,网上一查,这个选项的作用是 在Makefile中添加宏定义来控制源程序的编译,那这可以达到我的目的了,那我只要在dnsmasq的Makefile文件中与我在应用层打开的配置相关联,这样就可以间接的来控制代码的编译了。

CFLAGS = -O2 -D__uClinux__ -DNO_GETTEXT
ifeq ("$(
CONFIG_USER_FAKE_DNS)", "y")
CFLAGS += -D
FAKE_DNS

其上面的CONFIG_USER_FAKE_DNS是通过配置应用层的相关功能打开的宏,即通过make menuconfig

上面的意思是如果配置了USER_FAKE_DNS,那么就在dnsmasq中打开DNS欺骗功能。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值