在 Apple Silicon 上构建 lld

问题描述

我正在尝试从 LLVM 版本 11 构建 lld(我暂时无法使用任何更高版本或主版本的 LLVM)并且目前正在使用 cmake ~/Downloads/lld-11.0.0.src/ -DCMAKE_INSTALL_PREFIX=$HOME/bin/llvm -DCMAKE_PREFIX_PATH=$HOME/bin/llvm -DCMAKE_BUILD_TYPE=Release -G Ninja 进行配置,但是 ninja install 然后失败了有 20 个我认为错误都是与标准库相关的(例如“未知类型名称‘constexpr’”和“在命名空间‘std’中没有名为‘underlying_type_t’的模板;你的意思是‘underlying_type’吗? ").

认情况下,cmake 使用的编译器是 Apple Clang 12,它是我的系统附带的(或自动安装的)。我应该将哪些其他标志传递给 cmake 才能使其正常工作?还是我需要使用不同的编译器? LLVM 11 使用相同的 cmake 标志进行配置和构建。

解决方法

对于遇到类似问题的其他任何人:从 monorepo 一次性构建 LLVM、lld 和 clang。我不得不将 -DLLVM_ENABLE_PROJECTS="clang;lld" 添加到 cmake 命令中。