如何构建所有 LLVM?

Aki*_*iva 5 installation build cmake llvm clang

我最近在我的系统中构建并安装了 llvm,期望这将是构建 qtcreator 所必需的: https: //paste.ubuntu.com/p/23GCCS5xxS/

\n

根据我在那里看到的内容,我将变量设置为:

\n
\xe2\x9e\x9c  qt6.2 git:(6.2) \xe2\x9c\x97 echo $LLVM_INSTALL_DIR\n\n/usr/local/lib/cmake/llvm/\n
Run Code Online (Sandbox Code Playgroud)\n

然而在配置Qt6.2时,它仍然给出

\n
WARNING: QDoc will not be compiled, probably because libclang could not be located. This means that you cannot build the Qt documentation.\nEither set CMAKE_PREFIX_PATH or LLVM_INSTALL_DIR to the location of your llvm installation.\n
Run Code Online (Sandbox Code Playgroud)\n

据我了解,当我构建 llvm 时,我没有用它构建 Clang。基于https://clang.llvm.org/get_started.html它给出了以下行:

\n
cmake -DLLVM_ENABLE_PROJECTS=clang -G "Unix Makefiles" ../llvm\nmake\n#This builds both LLVM and Clang for debug mode.\n
Run Code Online (Sandbox Code Playgroud)\n

这很令人沮丧,因为我现在必须再次构建它,这需要很长时间。\n我只是喜欢从 llvm 构建和安装所有内容的命令,所以我不必继续回到这些事情。那可能吗?

\n

Ale*_*ing 9

要构建一切,请执行以下操作:

$ git clone --depth 1 --branch llvmorg-12.0.1 https://github.com/llvm/llvm-project.git
$ cmake -S llvm-project/llvm -B llvm-project/build \
        -DCMAKE_BUILD_TYPE=Release \
        -DLLVM_ENABLE_PROJECTS=all \
        -DCMAKE_CXX_COMPILER=clang++ \
        -DCMAKE_C_COMPILER=clang
$ cmake --build llvm-project/build -j8
$ cmake --install llvm-project/build --prefix /usr/local  # or somewhere else
Run Code Online (Sandbox Code Playgroud)

您可能还对第一个 CMake 命令的以下构建标志感兴趣:

  • -DLLVM_ENABLE_TERMINFO=OFF-- 删除对 terminfo 的依赖
  • -DLLVM_ENABLE_ASSERTIONS=ON-- 有利于调试
  • -DLLVM_ENABLE_EH=ON-- 如果您的应用程序使用 C++ 异常则启用
  • -DLLVM_ENABLE_RTTI=ON-- 如果您的应用程序使用 C++ RTTI,则启用

另请参阅上游文档:https://llvm.org/docs/CMake.html


请注意,某些 LLVM 项目只能使用 clang 构建。我不会讨论引导问题,但如果构建失败,您可以将项目列表筛选为all以下子集:, clang, clang-tools-extra, compiler-rt, cross-project-tests, libc, libclc, libcxx, libcxxabi, libunwind, lld, lldb, openmp, parallel-libs, pollypstl