你如何构建所有的 LLVM?
How do you build all of LLVM?
我最近构建并安装了 llvm 到我的系统,期望这是构建 qtcreator 所必需的:https://paste.ubuntu.com/p/23GCCS5xxS/
根据我在那里看到的内容,我将变量设置为:
➜ qt6.2 git:(6.2) ✗ echo $LLVM_INSTALL_DIR
/usr/local/lib/cmake/llvm/
但是在配置Qt6.2的时候,还是给出了
WARNING: QDoc will not be compiled, probably because libclang could not be located. This means that you cannot build the Qt documentation.
Either set CMAKE_PREFIX_PATH or LLVM_INSTALL_DIR to the location of your llvm installation.
据我所知,当我构建 llvm 时,我并没有用它来构建 Clang。基于 https://clang.llvm.org/get_started.html 它给出了以下行:
cmake -DLLVM_ENABLE_PROJECTS=clang -G "Unix Makefiles" ../llvm
make
#This builds both LLVM and Clang for debug mode.
这很令人沮丧,因为我现在必须重新构建它,这需要很长时间。
我只是喜欢从 llvm 构建和安装所有内容的命令,所以我不必继续回到这些东西。这可能吗?
要构建一切,请执行以下操作:
$ 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
您可能还对第一个 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
, polly
, pstl
.
我最近构建并安装了 llvm 到我的系统,期望这是构建 qtcreator 所必需的:https://paste.ubuntu.com/p/23GCCS5xxS/
根据我在那里看到的内容,我将变量设置为:
➜ qt6.2 git:(6.2) ✗ echo $LLVM_INSTALL_DIR
/usr/local/lib/cmake/llvm/
但是在配置Qt6.2的时候,还是给出了
WARNING: QDoc will not be compiled, probably because libclang could not be located. This means that you cannot build the Qt documentation.
Either set CMAKE_PREFIX_PATH or LLVM_INSTALL_DIR to the location of your llvm installation.
据我所知,当我构建 llvm 时,我并没有用它来构建 Clang。基于 https://clang.llvm.org/get_started.html 它给出了以下行:
cmake -DLLVM_ENABLE_PROJECTS=clang -G "Unix Makefiles" ../llvm
make
#This builds both LLVM and Clang for debug mode.
这很令人沮丧,因为我现在必须重新构建它,这需要很长时间。 我只是喜欢从 llvm 构建和安装所有内容的命令,所以我不必继续回到这些东西。这可能吗?
要构建一切,请执行以下操作:
$ 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
您可能还对第一个 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
, polly
, pstl
.