如何在编译Wireshark 1.9.2时关闭警告转错误?
解决Wireshark 1.9.2编译时未使用typedef的错误
方法1:临时禁用特定警告(快速解决)
编译时所有警告被当作错误触发失败,可直接关闭未使用本地typedef的警告:
- 进入build目录,清理旧缓存:
rm -rf CMakeCache.txt CMakeFiles - 重新执行CMake并添加编译选项:
cmake .. -DCMAKE_C_FLAGS="-Wno-unused-local-typedefs" - 再次执行
make install即可完成编译。
方法2:修改源码修复(规范解决)
不直接删除typedef(避免破坏代码依赖),给未使用的typedef添加“占位使用”让编译器认可:
- 打开文件
/home/techie/wireshark-1.9.2/epan/dissectors/packet-dcerpc-rs_pgo.c - 在
dissect_rs_pgo_query_t函数里的} rs_pgo_query_t;下方添加一行:(void)sizeof(rs_pgo_query_t); - 同样,在
dissect_rs_pgo_query_key_t函数里的} rs_pgo_query_t;下方也添加上述代码 - 保存文件后回到build目录执行
make install
注意事项
直接注释typedef会破坏代码结构(该类型可能被其他逻辑依赖),因此不建议这么做。上述两种方法中,方法1适合快速完成编译,方法2属于从代码层面修复警告问题,更符合编码规范。
内容的提问来源于stack exchange,提问作者Dying Falcon
相关产品推荐
相关产品推荐

