0
我們正在使用Dell SUSE Enterprise。沒有選擇。無法在Dell SUSE Enterprise下編譯libpcap
SUSE在zypper存儲庫中沒有libpcap-devel或類似的東西。
我已經從GIT存儲庫下載並安裝了libpcap。 libpcap需要編譯flex和bison。 flex版本2.5.35和野牛一樣在回購中。
但是,我不能得到任何使用libpcap-devel編譯的問題。 autoconf的腳本上嘗試在libpcap.so鏈接失敗:
configure:3633: $? = 1
configure:3636: checking whether we are using the GNU C++ compiler
configure:3665: g++ -c conftest.cpp >&5
configure:3672: $? = 0
configure:3689: result: yes
configure:3698: checking whether g++ accepts -g
configure:3728: g++ -c -g conftest.cpp >&5
configure:3735: $? = 0
configure:3836: result: yes
configure:3861: checking dependency style of g++
configure:3952: result: gcc3
configure:3981: checking for a BSD-compatible install
configure:4049: result: /usr/bin/install -c
configure:4067: checking for pcap_lookupdev in -lpcap
configure:4102: gcc -o conftest -g -O2 conftest.c -lpcap >&5
/usr/local/lib/libpcap.so: undefined reference to `pcap_lex'
collect2: ld returned 1 exit status
configure:4109: $? = 1
configure: failed program was:
運行在歸檔處,我發現:
$ nm /usr/local/lib/libpcap.so | grep pcap_lex
U pcap_lex
當然
,pcap_lex是真正從函數yylex使用#define。
我不在這裏。我試圖弄清楚爲什麼這些東西沒有在Suse上正確編譯。有人有線索嗎?
雖然技術上是正確的,但更好的方法是從http://www.tcpdump.org/下載libpcap 1.2.1源代碼。該版本編譯沒有問題。所以真正的答案是不要從github隨機發布。 – vy32 2012-03-14 00:00:15
那麼,至少有一些其他報告這些問題的人報告了從tcpdump.org下載的標準版本的問題,所以這不一定是有保證的修復。 – 2012-03-14 05:52:57
或者在我的情況下,使用tcpdump.org文件成功構建了該庫,但是當我嘗試將其鏈接到項目時,出現此錯誤。 – 2016-01-05 21:13:15