#5015·bcc

在 Debian Bookworm 上进行 BCC 源设置时出现错误

作者: VishnuVelayuthan创建于 2024年5月24日更新于 2026年3月21日

我正在尝试在 Ubuntu Jammy 系统上的 Debian bookworm 容器中从源代码编译 BCC(下面列出了规格)。 它在我的 Ubuntu 系统上编译得很好,但是,当我在 Debian 上按照设置步骤(配置 sid,下载构建工具)时,运行 make 在 bcc/build 目录中时,我遇到了一个 make 错误。 它抛出了以下错误: make[2]: *** No rule to make target '/usr/lib/llvm-16/lib/libPolly.a', needed by 'src/cc/libbcc.so.0.30.0'. Stop. make[1]: *** [CMakeFiles/Makefile2:780: src/cc/CMakeFiles/bcc-shared.dir/all] Error 2 在第一次运行命令时大约为 20%,在随后的运行中为 14%。 Makefile 似乎缺少构建 /usr/lib/llvm-16/lib/libPolly.a 文件的规则,而试图构建 CXX 对象 src/cc/CMakeFiles/bcc-shared.dir/common.cc.o 文件。 为了简单地测试和调试解决方案,我创建了一个空的 /usr/lib/llvm-16/lib/libPolly.a 文件,并继续构建过程。 然后,我收到了另一个错误: make[2]: *** No rule to make target '/usr/lib/llvm-16/lib/libPollyISL.a', needed by 'src/cc/libbcc.so.0.30.0'. Stop. make[1]: *** [CMakeFiles/Makefile2:780: src/cc/CMakeFiles/bcc-shared.dir/all] Error 2 make: *** [Makefile:146: all] Error 2 我触摸并创建了另一个空文件,名为 /usr/lib/llvm-16/lib/libPollyISL.a,继续构建过程。 然后,我在大约 38% 的位置遇到了另一个错误(如预期): usr/bin/ld: /usr/lib/llvm-16/lib/libclangCodeGen.a(BackendUtil.cpp.o): in function (anonymous namespace)::EmitAssemblyHelper::RunOptimizationPipeline(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_deletellvm::raw_pwrite_stream >&, std::unique_ptr<llvm::ToolOutputFile, std::default_deletellvm::ToolOutputFile >&)': (.text._ZN12_GLOBAL__N_118EmitAssemblyHelper23RunOptimizationPipelineEN5clang13BackendActionERSt10unique_ptrIN4llvm17raw_pwrite_streamESt14default_deleteIS5_EERS3_INS4_14ToolOutputFileES6_ISA_EE+0x14ad): undefined reference to 'getPollyPluginInfo()' /usr/bin/ld: /usr/lib/llvm-16/lib/libLLVMLTO.a(LTOBackend.cpp.o): in function 'llvm::lto::opt(llvm::lto::Config const&, llvm::TargetMachine*, unsigned int, llvm::Module&, bool, llvm::ModuleSummaryIndex*, llvm::ModuleSummaryIndex const*, std::vector<unsigned char, std::allocator > const&)': (.text._ZN4llvm3lto3optERKNS0_6ConfigEPNS_13TargetMachineEjRNS_6ModuleEbPNS_18ModuleSummaryIndexEPKS8_RKSt6vectorIhSaIhEE+0x8e5): undefined reference to 'getPollyPluginInfo()' /usr/bin/ld: /usr/lib/llvm-16/lib/libLLVMExtensions.a(Extensions.cpp.o): in function 'llvm::details::extensions_anchor()': (.text._ZN4llvm7details17extensions_anchorEv+0x1a): undefined reference to 'getPollyPluginInfo()' collect2: error: ld returned 1 exit …` 这是 trace: