我最近一直在研究 BPF,但由于一个非常基本的问题而没有进行。
我按照 man bpf(2) 中的描述包含了 linux/bpf.h,但 GCC 找不到 bpf 函数。此代码仅用于测试以确保 GCC 可以找到 bpf 函数。
#include <linux/bpf.h>
int main()
{
bpf(0,(void *)0,0);
return 0;
}
GCC 输出是这样的。
$ gcc -o test bpf.c
bpf.c: In function ‘main’:
bpf.c:5:2: warning: implicit declaration of function ‘bpf’ [-Wimplicit-function-declaration]
bpf(0,(void *)0,0);
^~~
/usr/bin/ld: /tmp/cc4tjrUh.o: in function `main':
bpf.c:(.text+0x19): undefined reference to `bpf'
collect2: error: ld returned 1 exit status
我使用的是 Archlinux,linux 内核版本是 4.20.11-arch1-1-ARCH。请帮助我如何包含 bpf 功能。