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
双击编译后的文件可以直接运行代码。