Make:ターゲット「pcap-bt-monitor-linux.o」のレシピが失敗しました。

Make:ターゲット「pcap-bt-monitor-linux.o」のレシピが失敗しました。

私はこれをフォローしていますガイド私のDebian Linuxにsnortをインストールします。手順2でlibpcapを構築するために "Make"コマンドを実行している間、 "Recipe for target 'pcap-bt-monitor-linux.o' failed"エラーが発生します。

gcc -fpic -I.  -DHAVE_CONFIG_H  -D_U_="__attribute__((unused))" -g -O2 -c ./pcap-bt-monitor-linux.c
./pcap-bt-monitor-linux.c:42:28: fatal error: bluetooth/mgmt.h: No such file or directory
#include <bluetooth/mgmt.h>
                        ^
compilation terminated.
Makefile:83: recipe for target 'pcap-bt-monitor-linux.o' failed
make: *** [pcap-bt-monitor-linux.o] Error 1

答え1



他の人が述べたように、問題は、欠落している依存関係bluetooth / mgmt.hが見つからないことです。

上記の問題を解決するより直接的な方法は、不足しているヘッダーをコピーするカスタムインクルードディレクトリを作成することです。

# ${source_dir} is the dir where you're using make
# creating custom include directory
mkdir -p ${source_dir}/include/bluetooth

# downloading the missing header into it
curl https://projects.archlinux.org/svntogit/packages.git/plain/trunk/mgmt.h?h=packages/libpcap -o ${source_dir}/include/bluetooth/mgmt.h

# Adding the custom include directory to the include path
export CFLAGS="$CFLAGS -I${source_dir}/include"

動作していることを確認してください

答え2

このメッセージは、アプリケーションをコンパイルするための依存関係が欠落していることを示しています。以下を使用して、apt-file関連ファイルを含むパッケージを簡単に見つけることができます。

# apt-file update
# apt-file search bluetooth/mgmt.h
linux-headers-3.16.0-4-common: /usr/src/linux-headers-3.16.0-4-common/include/net/bluetooth/mgmt.h

実行しているDebianのバージョンによってパッケージ名が異なる場合があります。

答え3

Makeは依存関係を見つけることができません。ファイルが存在しないか(おそらく)非標準の場所にインストールされました。 Bluetooth開発パッケージがインストールされていることを確認してください。

sudo aptitude install libbluetooth-dev

編集:@jordanmユーザーは、欠落しているファイルを見つけるためのより一般的な方法を持っていますが、wheezyを使用している場合は、次の場所にあります。libbluetooth-devパック。

関連情報