2

我正在尝试使用用 pf_ring 编译的 libpcap。我从 ntop 获得了源代码,并对其进行了编译。

但是,有些事情我不明白(对于新手链接问题感到抱歉):我想知道我的应用程序是否使用了正确的 pcap 版本(带有 pfring 的版本),所以我输入了 ldd 并且根本没有看到 pcap,只有pfring。

我查看了输出,只看到 pfring.so 而不是 pcap,尽管我动态链接到这两个库。

我查看了 libpcap 的 Makefile,发现它与 pfring.a 静态链接。我以为我根本不必与 pfring 链接,因为它是 pcap 的一部分,但得到了未定义的引用。

有谁知道为什么我得到未定义的引用错误,为什么我在动态链接到它时在 ldd 输出中看不到 libpcap?

谢谢,罗恩

4

1 回答 1

0

首先确保您完成了以下所有步骤:

//Installation
sudo su
cd kernel; make install
cd ../userland/lib; make install
insmod ./kernel/pf_ring.ko

然后从系统中删除当前的 libpcap 及其所有依赖项。

如您所知,启用 pfring 的 libpcap 位于 /userland/libpcapx 下。

如果您在应用程序中使用启用 pf_ring 的 libpcap,只需将 libpcap.a 链接到您的程序。

于 2016-12-29T05:18:44.620 回答