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

    欢迎评论交流
  • 相关阅读:
    Valid Anagram
    Spiral Matrix II
    Spiral Matrix
    Kth Smallest Element in a BST
    Count Primes
    javascript 判断浏览器
    javascript 数值交换技巧
    EntityFramework 6 分页模式
    JSON.parse 和 JSON.stringify
    CSS z-index
  • 原文地址:https://www.cnblogs.com/linengier/p/14376800.html
Copyright © 2011-2022 走看看