为ARM Linux设备编译Avahi时能否禁用IPv6功能?
解答
可以在编译Avahi时禁用IPv6功能,适配不支持IPv6的ARM架构Linux内核,具体操作如下:
- 执行
./configure配置时,添加核心参数--disable-ipv6,编译脚本会直接剔除所有IPv6相关的代码逻辑,最终生成的二进制文件不会调用IPv6相关系统调用,可在无IPv6支持的内核上正常运行IPv4模式下的mDNS、DNS-SD服务。 - 如果你是在x86主机上为ARM设备做交叉编译,还需要额外指定对应工具链的
--host参数,例如使用arm-linux-gnueabihf前缀的交叉工具链时,基础配置命令示例如下:
./configure --host=arm-linux-gnueabihf --disable-ipv6
你可以根据自身需求追加其他功能裁剪参数,比如关闭不需要的组件、指定安装前缀等。
- 参数生效校验:配置脚本执行完毕后,终端会打印完整的功能配置清单,找到
IPv6 support项确认状态为no,即代表IPv6禁用配置已生效。 - 如果你之前在同一份源码目录下执行过不带该参数的配置、编译操作,需要先运行
make clean清理旧的编译缓存和目标文件,再重新走配置、编译、安装流程,避免残留的带IPv6逻辑的目标文件导致程序运行时调用不存在的内核接口报错。
内容的提问来源于stack exchange,提问作者tirzasrwn
相关产品推荐
相关产品推荐

