概述
1.现象:虚拟机( Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz)编译出来的libpcap.so.1.9.1库和相关程序分别放到实体机1(Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz)和实体机2(Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz)运行,实体机1运行没有出现问题,但实体机2出现Illegal Instruction错误:
2.分析:
(1)Illegal Instruction含义
illegal instruction,即SIGILL, 是POSIX标准中提供的一类错误。 从名字上看,SIGILL是启动的某个进程中的某一句不能被CPU识别成正确的指令。 此类错误是由操作系统发送给进程的,在进程试图执行一些形式错误、未知或者特权指令时操作系统会使用SIGILL信号终止程序。 SIGILL对应的常数是4。
(2)可能诱发Illegal Instruction原因
诱发Illegal Instruction原因有很多种,比如将不正确的数据写入代码段,工具链bug,访存对齐或浮点数格式问题等,在本案例中,从运行情况看,多半是新体系结构中编译的可执行程序,在老机器上运行时会有illegal instruction问题。
3.解决:
在实体机2(Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz)搭建gcc这样开发环境,并对libpcap-1.9.1源码编译,编译出的库和程序放到实体机1和虚拟机都可以运行成功。
最后
以上就是神勇墨镜为你收集整理的链接libpcap.so.1.9.1出现Illegal Instruction错误的全部内容,希望文章能够帮你解决链接libpcap.so.1.9.1出现Illegal Instruction错误所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复