zoukankan      html  css  js  c++  java
  • libbpf: sec 'xxx': failed to find program symbol at offset 0

    在在使用libbpf的时候出现下面的错误,libbpf: sec 'xdp': failed to find program symbol at offset 0,
    原因是ubunut默认安装的llvm为6.0版本的生成的.o文件没有函数的符号表。

     llvm-readelf-10 -symbols xdp_pass_kern.o |grep xdp
        24: 0000000000000000     0 SECTION LOCAL  DEFAULT     3 xdp
        30: 0000000000000000     0 NOTYPE  GLOBAL DEFAULT     3 xdp_prog_simple
    

    安装新clang10,修改编译器为clang10,问题解决。
    安装clang10:
    添加key:

    wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add -
    

    添加源:

    sudo vim /etc/apt/source.list.d/llvm-10.list
    sudo apt update
    

    安装:

    sudo apt install clang-10
    

    安装 AST.h 等头文件

    sudo apt install libclang-10-dev
    

    配置为默认的clang

    sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-10 10000
    sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-10 10000
    sudo update-alternatives --install /usr/bin/llvm-config llvm-config /usr/bin/llvm-config-10 10000
    

    参考文档
    Latest libbpf fails to load programs compiled with old LLVM

    欢迎评论交流
  • 相关阅读:
    $prufer$序列
    倍增
    二分
    英语词汇速查表
    ACM模拟赛
    Trie树
    关于军训的模拟赛-R2
    树上差分
    列队
    斜率优化dp
  • 原文地址:https://www.cnblogs.com/linengier/p/14376800.html
Copyright © 2011-2022 走看看