Dell SUSE Enterpriseを使用しています。選択の余地ない。Dell SUSE Enterpriseでlibpcapをコンパイルできない
SUSEにはlibpcap-develやzypperリポジトリに似たものはありません。
GITリポジトリからlibpcapをダウンロードしてインストールしました。 libpcapは、flexとbisonの両方をコンパイルする必要があります。 flexバージョン2.5.35は、bisonと同様にレポにあります。
しかし、libpcap-develを使ってコンパイルするのは問題ありません。 autoconfのスクリプトはlibpcap.soにリンクする試みに失敗:アーカイブのNMを実行
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
さて、これらの問題を報告した他の人々の少なくとも一部は、tcpdump.orgからダウンロードされた標準リリースの問題を報告していたため、必ずしも保証された修正ではありません。 –
私の場合は、tcpdump.orgファイルを使用してライブラリを構築しましたが、プロジェクトにリンクしようとするとこのエラーが発生します。 –