簡體   English   中英

你如何構建所有的 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項目中篩選到以下子集: clangclang-tools-extracompiler-rtcross-project-testslibclibclclibcxxlibcxxabilibunwindlldlldbopenmpparallel-libspollypstl

這些是我從這里采取的步驟:

mkdir llvm
cd llvm

git clone https://github.com/llvm/llvm-project.git .
git clone https://github.com/KhronosGroup/SPIRV-LLVM-Translator.git
git clone https://github.com/intel/opencl-clang.git
git clone https://github.com/KhronosGroup/SPIRV-Headers.git ./llvm/projects/SPIRV-Headers
git clone https://github.com/intel/vc-intrinsics.git ./llvm/projects/vc-intrinsics

mkdir build
cd build

cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD=”X86″ -DLLVM_ENABLE_PROJECTS=”clang” -DLLVM_EXTERNAL_PROJECTS=”llvm-spirv;opencl-clang” -DLLVM_EXTERNAL_LLVM_SPIRV_SOURCE_DIR=”../SPIRV-LLVM-Translator” -DLLVM_EXTERNAL_OPENCL_CLANG_SOURCE_DIR=”../opencl-clang” ../llvm

make opencl-clang

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM