2

pf_ring でコンパイルされた libpcap を使用しようとしています。ntop からソースを取得し、コンパイルしました。

ただし、理解できないことがあります (初心者のリンクの質問で申し訳ありません): アプリケーションが正しい pcap バージョン (pfring を使用したもの) を使用しているかどうかを知りたかったので、ldd と入力しましたが、pcap がまったく表示されませんでした。フリングのみ。

両方のライブラリに動的にリンクしていましたが、出力を確認したところ、pcap ではなく pfring.so しか表示されませんでした。

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 に答える