C++在Ubuntu中编译pcap函数报错的解决方法

@编译pcap函数报错的解决方法

C++在Ubuntu中编译pcap函数报错的解决方法

为了处理pcap数据包文件,在编译前准备工作
1.安装libpcap函数库

sudo apt-get install libpcap-dev

2.编译.cc代码

g++ parse_ins84_new.cc -o parse

直接编译会报错
在这里插入图片描述
链接libpcap函数出现问题,报错
undefined reference to `pcap_open_offline’

undefined reference to `pcap_loop’

undefined reference to `pcap_geterr’
解决方法
在编译命令后面加上参数-lpcap

g++ parse_ins84_new.cc -o parse -lpcap

成功得到编译文件,但此时的文件类型是
shared library (application/x-sharedlib)
无法直接双击运行。
原因:

自16.10起,gcc就默认开启了pie选项,导致编译出的文件的mime是application/x-sharedlib,一般的文件管理器只认application/x-executable,就没把它当成可执行的;
需要手动给编译器加上-fno-pie和-no-pie选项,才可编译成application/x-executable文件

g++ -fno-pie -no-pie parse_ins84_new.cc -o parse1 -lpcap

双击编译后的文件可以直接运行代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值