首页 > 解决方案 > 构建 LLVM 时的 Cmake

问题描述

尝试使用 CMake 构建 llvm 项目 LLVM 项目,它给了我一个我自己无法解决的错误。

为此,我使用的是 Ubuntu 虚拟机(版本 18.04),并且正在尝试使用“ninja”构建项目。

我尝试使用以下命令构建它(LLVM Builder Guide 说要使用,https://llvm.org/docs/GettingStarted.html

git clone https://github.com/llvm/llvm-project.git
cd llvm-project/
mkdir build && cd build
cmake -DLLVM_ENABLE_PROJECTS='all' -DCMAKE_BUILD_TYPE=Release -G 'Ninja' ../llvm

在最后一个命令中,我使用第一个标志来下载所有项目,而第二个标志是因为我不需要调试工具。

最后一个命令多次给我以下错误,目标不同:

CMake Error at /usr/share/cmake-3.10/Modules/ExternalProject.cmake:2759 (get_property):
  get_property could not find TARGET llgo.  Perhaps it has not yet been
  created.
Call Stack (most recent call first):
  /usr/share/cmake-3.10/Modules/ExternalProject.cmake:3032 (_ep_add_configure_command)
  /home/enrique/Escritorio/llvm-project/llgo/CMakeLists.txt:200 (externalproject_add)
  /home/enrique/Escritorio/llvm-project/llgo/CMakeLists.txt:219 (add_libgo_variant)

这个库错误:

-- LLD version: 10.0.0
CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
  Could NOT find LibEdit (missing: libedit_INCLUDE_DIRS libedit_LIBRARIES)
Call Stack (most recent call first):
  /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
  /home/enrique/Escritorio/llvm-project/lldb/cmake/modules/FindLibEdit.cmake:54 (find_package_handle_standard_args)
  /home/enrique/Escritorio/llvm-project/lldb/cmake/modules/LLDBConfig.cmake:104 (find_package)
  /home/enrique/Escritorio/llvm-project/lldb/CMakeLists.txt:21 (include)


-- Configuring incomplete, errors occurred!
See also "/home/enrique/Escritorio/llvm-project/build/CMakeFiles/CMakeOutput.log".
See also "/home/enrique/Escritorio/llvm-project/build/CMakeFiles/CMakeError.log".

标签: cmakellvm

解决方案


我有同样的问题,尝试卸载 golang 编译器(因为我不需要 llvm 支持 go);无济于事。我不是 LLVM 专家,所以这可能不是规范的解决方案,但这是我解决它的方法:

我换了

-DLLVM_ENABLE_PROJECTS='全部'

经过

-DLLVM_ENABLE_PROJECTS="proj1;proj2;proj3"

project is enabled$我通过在cmake输出中搜索并删除了 llgo 项目来构建列表“proj1;proj2;proj3” 。我有一个类似的列表:

-- clang project is enabled
-- clang-tools-extra project is enabled
-- compiler-rt project is enabled
-- debuginfo-tests project is enabled
-- libclc project is enabled
-- libcxx project is enabled
-- libcxxabi project is enabled
-- libunwind project is enabled
-- lld project is enabled
-- lldb project is enabled
-- llgo project is enabled
-- openmp project is enabled
-- parallel-libs project is enabled
-- polly project is enabled
-- pstl project is enabled

然后用一些vim宏/你掌握的任何东西构建以下列表(注意:那里没有llgo):

clang;clang-tools-extra;compiler-rt;debuginfo-tests;libclc;libcxx;libcxxabi;libunwind;lld;lldb;openmp;parallel-libs;polly;pstl

然后编译llvm成功\o/


推荐阅读