如何构建所有 LLVM?

问题描述 投票:0回答:2

我最近在我的系统中构建并安装了 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 构建和安装所有内容的命令,因此我不必继续返回这些内容。这可能吗?

installation cmake build clang llvm
2个回答
14
投票

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

$ git clone --depth 1 --branch llvmorg-19.1.0 https://github.com/llvm/llvm-project.git
$ cmake -S llvm-project/llvm -B llvm-project/build \
        -DCMAKE_BUILD_TYPE=Release \
        -DLLVM_ENABLE_PROJECTS=all \
        -DLLVM_ENABLE_RUNTIMES=all
$ cmake --build llvm-project/build -j8
$ cmake --install llvm-project/build --prefix /usr/local  # or somewhere else

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

  • -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
cross-project-tests
libc
libclc
lld
lldb
openmp
polly
pstl

您还可以将运行时列表减少为

compiler-rt
libc
libcxx
libcxxabi
libunwind
openmp
的子集。

请注意,

LLVM_ENABLE_PROJECTS
LLVM_ENABLE_RUNTIMES
不应重叠。后者用刚刚构建的 clang 构建每个目标。


2
投票

这些是我使用的步骤取自这里

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
© www.soinside.com 2019 - 2024. All rights reserved.