编译Elfutils 0.166时-Wmissing-attributes报错无法禁用怎么办
Elfuils 0.166编译
-Werror=missing-attributes报错解决方案 报错原因
该问题由高版本GCC新增的-Wmissing-attributes检查触发,Elfutils 0.166发布时间较早,代码未适配该检查规则,且默认开启-Werror将所有警告转为错误,最终导致编译中断。
你此前的两种方案失效原因:
- 头文件中添加的
pragma诊断忽略指令未覆盖宏展开的调用位置,因此不生效 - Elfutils 0.166的
configure脚本原生未提供--disable-werror选项,因此传入参数会提示不识别
可行解决方案
方案1:传入CFLAGS禁用指定警告(无需修改源码,优先推荐)
执行configure前先设置CFLAGS环境变量,跳过该类警告的错误判定:
export CFLAGS="-g -O2 -Wno-error=missing-attributes" ./configure make
如果仍有同类属性警告报错,可将参数替换为-Wno-missing-attributes完全关闭该检查项。
方案2:全局移除Makefile中的-Werror参数
configure执行完成后,批量替换所有编译规则中的-Werror配置:
./configure find . -name "Makefile" -exec sed -i 's/-Werror//g' {} \; make
该操作会关闭所有警告转错误的规则,可覆盖所有编译告警导致的中断问题。
内容的提问来源于stack exchange,提问作者Ivan Ivanovich
相关产品推荐
相关产品推荐

