构建 LLVM 时的 Cmake



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

为此,我正在使用 Ubuntu 虚拟机(版本 18.04(,我正在尝试使用"忍者"构建项目。

我尝试使用以下命令构建它(LLVM 构建器指南说使用,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".

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

我替换了

-DLLVM_ENABLE_PROJECTS='全部'

-DLLVM_ENABLE_PROJECTS="proj1;项目2;项目3">

我在哪里建立了列表"proj1;项目2;Proj3",cmake输出中project is enabled$并删除了 LLGO 项目。我得到了一个列表,例如:

-- 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(:

铛;叮当工具额外;编译器-RT;调试信息测试;libclc;libcxx;libcxxabi;利邦温德;lld;lldb;开放MP;并行库;波莉;PSTL

然后编译 llvm 成功\o/

最新更新