You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu编译Wireshark 1.9.2遇CMake未知语言错误,求解决方案

解决Wireshark 1.9.2在Ubuntu下cmake编译报错问题

错误原因

Wireshark 1.9.2是较旧版本(发布于2013年),其cmake适配脚本与新版cmake(如你使用的3.16)存在兼容性冲突。具体是cmake/modules/FindGLIB2.cmake第241行调用CHECK_INCLUDE_FILES时使用了带引号的"C"作为语言参数,而cmake 3.16的CMP0054政策未设置的情况下,带引号的字符串会被当作变量解析(而非直接识别为语言标识),导致CheckIncludeFiles.cmake无法识别有效语言,触发报错。

解决方案

方案1:修改Wireshark源码中的cmake脚本

  1. 打开Wireshark源码目录下的cmake/modules/FindGLIB2.cmake文件
  2. 定位到第241行,找到类似如下的代码:
    CHECK_INCLUDE_FILES("glib.h" HAVE_GLIB_H "C")
    
  3. 将其中的"C"改为不带引号的C,修改后代码:
    CHECK_INCLUDE_FILES("glib.h" HAVE_GLIB_H C)
    
  4. 保存文件后,重新执行cmake ..即可

方案2:降级cmake到兼容版本

由于Wireshark 1.9.2设计时对应的cmake版本较低,你可以安装与该版本兼容的cmake版本(如2.8.x系列):

  1. 卸载当前cmake:
    sudo apt remove --purge cmake
    
  2. 安装cmake 2.8:
    sudo apt install cmake=2.8.12.2-0ubuntu3
    
  3. 验证版本:
    cmake --version
    
  4. 重新进入build目录执行cmake ..

内容的提问来源于stack exchange,提问作者Dying Falcon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 10:52:08