找回密码
 立即注册
img_loading
智能检测中

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888广告投放联系QQ68610888
查看: 412|回复: 4

openwrt编译相关问题

[复制链接]
发表于 2024-11-13 07:33 | 显示全部楼层 |阅读模式
如果config里面同时出现两个一模一样的CONFIG_PACKAGE_firewall=y
或者出现CONFIG_PACKAGE_firewall=y又同时出现CONFIG_PACKAGE_firewall=n
或者出现CONFIG_PACKAGE_firewall=y又同时出现CONFIG_PACKAGE_firewall4=y
会发生什么?是会直接报错还是前面的或者后面的优先级更高直接把另一个覆盖掉或者关闭掉?
比如 同时出现CONFIG_PACKAGE_firewall=y会视为只有一个继续编译
比如 出现CONFIG_PACKAGE_firewall=y又同时出现CONFIG_PACKAGE_firewall=n会n把y覆盖掉继续运行
比如 出现CONFIG_PACKAGE_firewall=y又同时出现CONFIG_PACKAGE_firewall4=y会报错?
求大佬解答









只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
发表于 2024-11-13 07:58 | 显示全部楼层

在 OpenWrt 编译配置文件 .config 中,如果出现重复或冲突的配置项,编译过程的行为取决于这些配置项的类型和顺序:

重复定义相同的配置项(如 CONFIG_PACKAGE_firewall=y 出现多次):

编译器通常只会保留最后一个定义的值。例如,若同一项 CONFIG_PACKAGE_firewall 被定义了多次,=y 或 =n 的最后一个值会覆盖前面的值,不会直接报错,而是按最终的配置项进行编译。
冲突定义(如 CONFIG_PACKAGE_firewall=y 和 CONFIG_PACKAGE_firewall=n 同时存在):

同样,这种情况下,编译器会遵循最后一次的定义。例如,如果 CONFIG_PACKAGE_firewall=y 在文件中定义了,然后 CONFIG_PACKAGE_firewall=n 又出现了,那么最终的配置是 =n。
没有直接报错,但可能导致某些功能被关闭或行为不一致。
相似配置项并存(如 CONFIG_PACKAGE_firewall=y 和 CONFIG_PACKAGE_firewall4=y 同时存在):

这种情况下不会直接报错,因为这两个配置项是不同的(虽然名字相似),但实际指向的是不同的软件包。这样会导致两个软件包都被编译进固件,可能会引起编译体积的增大或某些功能的冲突,但不会阻止编译继续进行。
总结一下,OpenWrt 的编译器通常会遵循**“最后一个定义优先”**的原则,不会直接报错,但需注意可能带来的配置冲突和功能异常。

点评

大佬,还有一个问题。我是云编译的openwrt。我想关闭默认的firewall4改成firewall。我从config文件里面添加了 # CONFIG_PACKAGE_dnsmasq_full_nftset is not set CONFIG_PACKAGE_firewall4=n CONFIG_PACKAGE_dnsmasq  详情 回复 发表于 2024-11-13 09:30
感谢大佬耐心的解答,研究了!  详情 回复 发表于 2024-11-13 08:23
看看 都来看看 这才是真大佬 膜拜膜拜  详情 回复 发表于 2024-11-13 08:01
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

发表于 2024-11-13 08:01 | 显示全部楼层
gyssi 发表于 2024-11-13 07:58
在 OpenWrt 编译配置文件 .config 中,如果出现重复或冲突的配置项,编译过程的行为取决于这些配置项的类 ...

看看

都来看看

这才是真大佬

膜拜膜拜
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-11-13 08:23 | 显示全部楼层
gyssi 发表于 2024-11-13 07:58
在 OpenWrt 编译配置文件 .config 中,如果出现重复或冲突的配置项,编译过程的行为取决于这些配置项的类 ...

感谢大佬耐心的解答,研究了!
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-11-13 09:30 | 显示全部楼层
gyssi 发表于 2024-11-13 07:58
在 OpenWrt 编译配置文件 .config 中,如果出现重复或冲突的配置项,编译过程的行为取决于这些配置项的类 ...

大佬,还有一个问题。我是云编译的openwrt。我想关闭默认的firewall4改成firewall。我从config文件里面添加了
# CONFIG_PACKAGE_dnsmasq_full_nftset is not set
CONFIG_PACKAGE_firewall4=n
CONFIG_PACKAGE_dnsmasq_full_nftset=n
CONFIG_PACKAGE_firewall=y
CONFIG_PACKAGE_dnsmasq-full=y
# CONFIG_PACKAGE_firewall4 is not set
本身导出的只有
# CONFIG_PACKAGE_firewall4 is not set

# CONFIG_PACKAGE_dnsmasq_full_nftset is not set

CONFIG_PACKAGE_firewall=y
CONFIG_PACKAGE_dnsmasq-full=y

后来我看还有=n的写法我怕不保险就加上了

CONFIG_PACKAGE_firewall4=n
CONFIG_PACKAGE_dnsmasq_full_nftset=n

但是编译固件的过程中还会编译firewall4,是我写的不对,还是有其他插件给firewall4打开了?而且应该还有很多nft的需要关闭吧,请问大佬要如何完全关闭firewall4?
只谈技术、莫论政事!(点击见详情) | 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛

只谈技术、莫论政事!切勿转播谣言!为了你也为了他人。
只谈技术、莫论政事!(点击见详情) 切记不要随意传播谣言,把自己的日子过安稳了就行,为了自己好也为了大家好。 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。

查看 »

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2025-6-18 23:20

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表