You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu20.04运行make kselftest-install报bpf_helper_defs.h缺失如何解决

问题场景

运行环境为Ubuntu 20.04操作系统,执行make kselftest-install命令编译内核自测组件时出现编译报错:

../../../lib/bpf/bpf_helpers.h:11:10: fatal error: 'bpf_helper_defs.h' file not found

问题原因

bpf_helper_defs.h不属于系统预装的通用头文件,是内核源码树中编译tools/libbpf组件时自动生成的派生头文件。直接执行kselftest相关构建目标时,如果没有提前构建libbpf前置依赖,或者系统预装的libbpf开发包版本与当前内核源码版本不匹配(Ubuntu 20.04官方源的libbpf-dev版本普遍偏低,无法匹配较新内核源码的构建要求),就会触发该文件找不到的错误。

解决步骤
  • 先安装基础编译依赖,不要安装源内的低版本libbpf-dev:
    sudo apt update
    sudo apt install build-essential libelf-dev clang llvm libcap-dev pahole
    
  • 回到内核源码根目录,提前编译libbpf组件生成缺失的头文件:
    make -C tools/lib/bpf
    
    执行完成后可进入tools/lib/bpf/目录检查,确认存在bpf_helper_defs.h文件即可。
  • 再回到内核源码根目录执行kselftest安装命令,不要直接在kselftest子目录单独执行构建,避免构建路径识别错误:
    # 可根据需要替换O参数后的输出目录路径,提前创建对应目录
    mkdir -p ./kselftest_out
    make kselftest-install O=./kselftest_out
    
    如果只需要编译bpf相关的自测用例,可追加TARGETS=bpf参数。
  • 如果上述步骤执行后仍报错,检查内核源码完整性,执行以下命令拉取全量子模块内容后重试:
    git submodule update --init --recursive
    

内容的提问来源于stack exchange,提问作者li_jessen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 11:39:28