编译C ++程序时包含外部库的问题

时间:2011-09-26 17:13:51

标签: compiler-construction g++ winpcap

我在Windows 7和WinPcap(开发人员包)上使用Dev C ++。 Dev c ++显然无法找到pcap.h,即使我在项目选项中包含/ include /目录,在编译时它会显示一条错误,上面写着“pcap.h:没有这样的文件或目录”。 (以及许多其他错误)。 这是我的代码:

#include <stdlib.h>
#include <stdio.h>
#include <pcap.h>

int main(int argc, char **argv)
{
pcap_t *fp;
char errbuf[PCAP_ERRBUF_SIZE];
u_char packet[100];

    return 0;
}

我保持简单。我最初是在Visual Studio(C ++)中工作,但是使用Visual C ++编译分发代码需要在目标系统上安装Microsoft C Runtime库。我只是希望能够分发最终的可执行文件并让它在任何机器上运行。

我检查了给编译器的命令行。 确实具有-I [path]选项。那有什么我想念的吗?

作为旁注:我用g ++(来自dev c ++安装目录)编译了上面的代码,并且编译正确。但是当我尝试链接它时,生成的可执行文件在运行时崩溃了。

1 个答案:

答案 0 :(得分:1)

您的问题有点不清楚,但您的旁注会让您觉得好像可以编译一样(即找到了pcap.h标题),而您的问题是链接。

要将目录添加到库的搜索路径,请使用-LPATH,其中PATH是包含libpcap的实际目录。要实际将其添加到链接,请在链接器调用中使用-lpcap,例如

$ g++ -o main -LPATH main.o -lpcap