【发布时间】:2017-12-07 14:01:43
【问题描述】:
我正在 Ubuntu 16.04 上构建 LLVM 6。我也想要lld。但无论我做什么,lld 都不会构建/安装。
遵循here 的以下指示。 仍在筛选第一和第二:)
阅读文档。
阅读文档。
-
请记住,您在阅读文档时被警告过两次。
特别是指定的相对路径很重要。
-
结帐 LLVM:
cd where-you-want-llvm-to-live svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm -
结帐叮当声:
cd where-you-want-llvm-to-live cd llvm/tools svn co http://llvm.org/svn/llvm-project/cfe/trunk clang -
检查额外的 Clang 工具 [可选]:
cd where-you-want-llvm-to-live cd llvm/tools/clang/tools svn co http://llvm.org/svn/llvm-project/clang-tools-extra/trunk extra -
结帐 LLD 链接器 [可选]:
cd where-you-want-llvm-to-live cd llvm/tools svn co http://llvm.org/svn/llvm-project/lld/trunk lld
没有下载其他可选包。由于 svn 下载无法正常工作 (svn: E000104: Error running context: Connection reset by peer),我从他们的 github 镜像下载了 zip 的 LLVM、Clang、clang-extra 和 lld。因为,我没有使用svn,所以必须对文件夹进行一些重命名(例如,将clang-tools-extra-master 改成extra)。
然后在cding进入llvm源文件夹的父文件夹后,执行以下操作,
$ mkdir build; cd build
$ cmake ../llvm
$ make
等待+8 小时后,我得到了除lld 之外的所有程序(clang、lli、llc 等)。我希望它出现在文件夹build/bin。
我也尝试了cmake -DLLVM_ENABLE_PROJECTS=llvm/tools/lld ../llvm 选项。 (-DLLVM_ENABLE_PROJECTS=lld 表单不起作用,我发现 this 地方讨论了相同的 ENABLE 问题。)
我已经尝试了 3 次调整。由于编译需要这么多时间,我决定请你帮忙。
另一个问题:在构建时,我的笔记本电脑上的链接阶段需要 12 GB RAM + 8.8 GB 交换空间! LLVM 构建真的需要 >20 GB 的内存吗? (我已经关闭了所有其他前台应用,尤其是firefox)
如果需要更多信息,请告诉我。
【问题讨论】:
-
关于链接阶段的 RAM 使用:这是由于调试信息和静态链接造成的,请参阅此答案以了解缓解问题的不同方法stackoverflow.com/a/44808601
-
@PaulR 感谢您的链接。每当我下次构建时都会尝试一下。我忘了提到我使用了
make -j 2,因此链接表明并行链接可能是另一个罪魁祸首。 -
现在我想起来了,我的猜测是帖子中提到的 LLVM_PARALLEL_LINK_JOBS 仅适用于忍者。但是忍者在其他方面效果很好,所以你可以尝试一下。
标签: llvm llvm-clang