我正在尝试在 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)
什么问题?
您需要安装libbpf:
git clone --depth 1 https://github.com/libbpf/libbpf
cd src
sudo make install
Run Code Online (Sandbox Code Playgroud)