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

CentOS下编译Wireshark 1.9.2遇非ASCII字符错误求解决

在CentOS编译Wireshark 1.9.2时的编码错误问题解决

问题场景

我在CentOS系统中尝试编译Wireshark 1.9.2,执行了以下操作:

mkdir build
cd build
cmake ..
make install

第一次报错信息

执行make install时出现如下错误:

[root@localhost build]# make install
Scanning dependencies of target auxiliary
[  0%] Generating AUTHORS-SHORT
[  0%] Generating capinfos.1, capinfos.html
[  0%] Generating dftest.1, dftest.html
[  0%] Generating dumpcap.1, dumpcap.html
[  0%] Generating editcap.1, editcap.html
[  0%] Generating asn2deb.1, asn2deb.html
/home/techie/wireshark-1.9.2/doc/asn2deb.pod around line 8: Non-ASCII character seen before =encoding in '[-a�I<ASN.1'. Assuming ISO8859-1
POD document had syntax errors at /usr/bin/pod2man line 69.
make[2]: *** [asn2deb.1] Error 255
make[1]: *** [CMakeFiles/auxiliary.dir/all] Error 2
make: *** [all] Error 2
[root@localhost build]# make install_sw
make: *** No rule to make target `install_sw'.  Stop.

尝试修复后的二次报错

我尝试删除报错中提到的非ASCII字符(文件中显示为空格,替换为正常空格),但错误出现在了新的位置。替换所有此类字符后,又出现新错误:

[root@localhost build]# make install
[  0%] Generating idl2deb.1, idl2deb.html
[  0%] Generating idl2wrs.1, idl2wrs.html
[  0%] Generating mergecap.1, mergecap.html
[  0%] Generating randpkt.1, randpkt.html
[  0%] Generating rawshark.1, rawshark.html
[  0%] Generating reordercap.1, reordercap.html
[  0%] Generating text2pcap.1, text2pcap.html
[  0%] Generating tshark.1, tshark.html
[  0%] Generating AUTHORS-SHORT-FORMAT, wireshark.pod
[  0%] Generating wireshark.1, wireshark.html
Wide character in printf at /usr/share/perl5/vendor_perl/Pod/Simple.pm line 539.
wireshark.pod around line 3549: Non-ASCII character seen before =encoding in 'KovE<aacute>ř'. Assuming UTF-8
POD document had syntax errors at /usr/bin/pod2man line 69.
make[2]: *** [wireshark.1] Error 255
make[1]: *** [CMakeFiles/auxiliary.dir/all] Error 2
make: *** [all] Error 2
[root@localhost build]# 

问题分析与解决方法

你的编译操作流程本身没有问题,报错根源是Perl的pod2man工具处理Wireshark的POD文档时,编码识别逻辑与文件实际编码不匹配,且非ASCII字符出现在编码声明之前导致解析失败。以下是几种可行的解决方式:

1. 先设置UTF-8环境变量

编译前先配置系统环境为UTF-8编码,让Perl工具正确识别文件中的非ASCII字符:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

执行完上述命令后,回到build目录重新运行make install。

2. 给POD文件添加编码声明

找到报错的POD文件(比如doc/asn2deb.pod、doc/wireshark.pod),在文件的最开头添加一行编码声明:

=encoding UTF-8

确保这一行位于所有非ASCII字符之前,保存文件后重新执行编译安装流程。

3. 跳过手册文档生成(快速方案)

如果不需要生成Wireshark的手册文档,可以在cmake阶段添加参数跳过POD文档的构建:

cmake .. -DENABLE_POD=OFF

之后再执行make install即可绕过编码错误。

4. 升级Perl的Pod::Simple模块

老版本的Pod::Simple模块对UTF-8字符的处理存在缺陷,可以升级到最新版本:

# 先安装cpan工具(如果没有的话)
yum install perl-CPAN
# 升级Pod::Simple
cpan Pod::Simple

升级完成后重新编译安装。

内容的提问来源于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.15 08:13:19