无法编译示例 bpf 程序,缺少 bpf/bpf.h

dai*_*isy 3 c linux bpf

我正在尝试在 Linux 源代码中编译示例 bpf 程序。所以我下载了当前的内核源代码并进入samples/bpf文件夹

apt source linux
cd linux-*/samples/bpf
Run Code Online (Sandbox Code Playgroud)

然后我尝试用gcc编译一个示例程序:

# gcc sock_example.c
sock_example.c:29:10: fatal error: bpf/bpf.h: No such file or directory
   29 | #include <bpf/bpf.h>
      |          ^~~~~~~~~~~
compilation terminated.
Run Code Online (Sandbox Code Playgroud)

我无法bpf/bpf.h找到apt-file

# apt-file find bpf/bpf.h
(no output)
Run Code Online (Sandbox Code Playgroud)

什么问题?

pch*_*gno 5

您需要安装libbpf

git clone --depth 1 https://github.com/libbpf/libbpf
cd src
sudo make install
Run Code Online (Sandbox Code Playgroud)