Make:目标“pcap-bt-monitor-linux.o”的配方失败

Make:目标“pcap-bt-monitor-linux.o”的配方失败

我正在关注这个指导在我的 Debian Linux 上安装 snort。在步骤 2 中,在执行命令“Make”来构建 libpcap 时,我收到错误“目标‘pcap-bt-monitor-linux.o’的配方失败”

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 找不到依赖项。您要么没有该文件(很可能),要么您将其安装在非标准位置。确保已安装蓝牙开发包:

sudo aptitude install libbluetooth-dev

编辑:用户@jordanm有一个更好的通用方法来查找您丢失的文件,但如果您使用wheezy,它位于libbluetooth-dev包裹。

相关内容