首先,我在c / c ++编程中退出了新的编程,所以也许它只是一个基本的错误,但我不知道。问题是,我想在更大的应用程序中使用libpcap,但我甚至无法将libary集成到一个简单的HelloWorld.cpp中。 Atm我正在使用Eclipse(MinGw编译器)和Windows 64bit,但如果我的问题无法解决,则可以切换到Linux。
已下载" libpcap-1.5.3.tar.gz"从tcpdump.org中,提取并将Libary的根目录添加到Eclipse(在" Properties / C | C ++ Build"到所有编译器和MinGW链接器)。 我的代码:
#include <iostream>
#include <pcap.h>
#include <stdio.h>
using namespace std;
int main(int argc, char *argv[]) {
cout << "Hello World!!!" << endl; // prints Hello World!!!
char *dev = argv[1];
printf("Device: %s\n", dev);
return(0);
}
第一个错误:
D:\Tools\MinGW\lib\libpcap/pcap-stdinc.h:49:22: fatal error: bittypes.h: No such file or directory
所以我改变了第49行
#include "bittypes.h"
到
#include <Win32/Include/bittypes.h>
(bittypes.h的实际位置)和下一个错误弹出:
D:\Tools\MinGW\lib\libpcap/pcap/pcap.h:451:1: error: 'Adapter' does not name a type
&#39;适配器&#39;在&#34; pcap-int.h&#34;中定义。所以我把这个标题包含在&#34; pcap.h&#34;但现在我明白了:
D:\Tools\MinGW\lib\libpcap/pcap-int.h:46:22: fatal error: Packet32.h: No such file or directory compilation terminated.
这个&#34; Packet32.h&#34;不存在......
我不能相信这个受欢迎的图书馆被打破了,所以我的错误在哪里?提前谢谢!
答案 0 :(得分:2)
问题是,我想在更大的应用程序中使用libpcap,但我甚至无法将libary集成到一个简单的HelloWorld.cpp中。 Atm我正在使用Eclipse(MinGw Compiler)和Windows
如果要在Windows上使用libpcap,则需要一个已移植到Windows的libpcap版本。 libpcap源代码不会在Windows上构建;在UNIX上,libpcap可以并且确实使用内置于操作系统中的数据包捕获机制,但它在Windows上没有这样做(一方面,Windows的旧版本,至少不会拥有 a内置的数据包捕获机制!),因此它还需要一个驱动程序。
libpcap到Windows的一个端口是WinPcap;它包括必要的驱动程序。如果您安装WinPcap,然后下载WinPcap developer's pack并安装它,应该可以配置Eclipse,以便您的程序可以使用WinPcap构建。
答案 1 :(得分:-2)
libpcap-1.5.3.tar.gz
是库的源包,而不是二进制包。所以你需要建立库;你不能只是将目录添加到Eclipse并期望它能够正常工作。
构建源包的常用方法是将其解压缩到一个目录中,并查找名为README
或INSTALL
的文件,这是一个简单的文本文件,其中包含有关如何构建和安装的说明各种机器的包装。通常会有不同平台的多个此类文件。
通常,会运行一个名为configure
的脚本来为目标创建一个Makefile;然后运行make
来构建代码,并make install
将其安装在标准位置,以便其他软件包可以找到它。