如何在Bionic下编译Clang LibTooling程序?

如何在Bionic下编译Clang LibTooling程序?

我正在尝试将使用 Clang 的 LibTooling 库的项目从 Arch 移植到 Ubuntu/Debian。我已经安装了clang-10llvm-10软件包libclang-10-dev。后者将必要的标头安装到/usr/lib/llvm-10/include/clang/(即usr/lib/llvm-10/include/clang/Tooling/Tooling.h)。但是,尝试链接使用这些标头的程序会导致各种链接错误,例如:

undefined reference to `clang::ast_matchers::internal::DynTypedMatcher::matches(clang::ast_type_traits::DynTypedNode const&, clang::ast_matchers::internal::ASTMatchFinder*, clang::ast_matchers::internal::BoundNodesTreeBuilder*) const'

在 Arch 下我可以解决这个问题,-lclang-cpp但在 Ubuntu 下没有这样的库。StackOverflow 上的几篇帖子建议链接到各种其他库,所以我也尝试过:

-lclangFrontendTool -lclangFrontend -lclangDriver -lclangSerialization -lclangCodeGen -lclangParse -lclangSema -lclangStaticAnalyzerFrontend -lclangStaticAnalyzerCheckers -lclangStaticAnalyzerCore -lclangAnalysis -lclangARCMigrate -lclangRewriteFrontend -lclangEdit -lclangAST -lclangLex -lclangBasic

但这也行不通。libclang-*-dev软件包不完整/损坏了吗?我又漏掉了一个软件包吗?还是我只是链接到了错误的库?

相关内容