Linux kernel 如何在Ubuntu 20.04上编译BCC?

Linux kernel 如何在Ubuntu 20.04上编译BCC?,linux-kernel,clang,bpf,bcc-bpf,Linux Kernel,Clang,Bpf,Bcc Bpf,我试图在Ubuntu 20.04上编译BCC BPF框架()。我遵守了18.04的所有指示,但当然;他们失败了 不过,我遇到的问题似乎与叮当声有关 In file included from /usr/local/include/clang/Frontend/CompilerInstance.h:15, from /home/matt/code/bpf/bcc/src/cc/frontends/clang/loader.cc:43: /usr/local/inc

我试图在Ubuntu 20.04上编译BCC BPF框架()。我遵守了18.04的所有指示,但当然;他们失败了

不过,我遇到的问题似乎与叮当声有关

In file included from /usr/local/include/clang/Frontend/CompilerInstance.h:15,
                 from /home/matt/code/bpf/bcc/src/cc/frontends/clang/loader.cc:43:
/usr/local/include/clang/Frontend/CompilerInvocation.h:157:15: note: candidate: ‘static bool clang::CompilerInvocation::CreateFromArgs(clang::CompilerInvocation&, llvm::ArrayRef<const char*>, clang::DiagnosticsEngine&)’
  157 |   static bool CreateFromArgs(CompilerInvocation &Res,
      |               ^~~~~~~~~~~~~~
/usr/local/include/clang/Frontend/CompilerInvocation.h:157:15: note:   candidate expects 3 arguments, 4 provided
make[2]: *** [src/cc/frontends/clang/CMakeFiles/clang_frontend.dir/build.make:63: src/cc/frontends/clang/CMakeFiles/clang_frontend.dir/loader.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:982: src/cc/frontends/clang/CMakeFiles/clang_frontend.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
在/usr/local/include/clang/Frontend/CompilerInstance.h:15中包含的文件中,
from/home/matt/code/bpf/bcc/src/cc/frontends/clang/loader.cc:43:
/usr/local/include/clang/Frontend/CompilerInvocation.h:157:15:注意:候选者:“静态bool clang::CompilerInvocation::CreateFromArgs(clang::CompilerInvocation&,llvm::ArrayRef,clang::DiagnosticsEngine&)”
157 |静态布尔CreateFromArgs(编译器职业和资源,
|               ^~~~~~~~~~~~~~
/usr/local/include/clang/Frontend/CompilerInvocation.h:157:15:注意:候选者需要3个参数,提供4个
make[2]:***[src/cc/frontends/clang/CMakeFiles/clang_frontend.dir/build.make:63:src/cc/frontends/clang/CMakeFiles/clang_frontend.dir/loader.cc.o]错误1
make[1]:***[CMakeFiles/Makefile2:982:src/cc/frontends/clang/CMakeFiles/clang_frontend.dir/all]错误2
make:**[Makefile:141:all]错误2

如何在Ubuntu 20.04上进行BCC编译?

从BCC v0.14.0-a28337a开始,我需要使用llvm-7而不是最新的llvm。此外,还需要使用
-DPYTHON\u CMD=python3
或安装Python2,因为默认情况下不再安装Python2。中列出的其他依赖项也是必需的

我可以在我的Ubuntu 20.04虚拟机上构建它

cmake -Bbuild -DPYTHON_CMD=python3 -DCMAKE_PREFIX_PATH=/usr/lib/llvm-7
make -Cbuild

你有什么版本的Clang?我试过从6到10的每一个版本。但是当我使用Clang时,看看它是如何编译的,它使用
/usr/bin/c++
来编译,这是
g++
,而不是Clang…你用gcc编译bcc,然后bcc用Clang将程序编译成BPF。为此,它使用libclang和libllvm。要知道它使用的是LLVM/Clang,您可以在安装过程中检查
cmake
命令的输出。哦,谢谢!:)您知道Clang/LLVM bcc支持哪些版本吗?啊,也许这就是您想要的:```$cmake..--最新识别的Git标记是v0.14.0——Git头是CEB458D6A07A42D8D6D3C16A3B8E387B513D610——修订版是0.14.0-ceb458d6——找到LLVM:/usr/lib/LLVM-8/include 8.0.1——使用静态libstdc++——找不到LuaJIT(缺少:LuaJIT_库LuaJIT_include_DIR)在tests/python/CMakeLists.txt处发出警告(消息):未找到推荐的测试程序“arping”```