重要的事情先做;我正在使用的各种工具的版本:
OS: Ubuntu 20.04.1 LTS
ld: 2.34
gold: GNU gold (GNU Binutils for Ubuntu 2.34) 1.16
gcc/g++: 9.4.0
cmake: 3.26.0
ninja: 1.10.0
有关硬件配置的一些详细信息:
memory: 16 GiB
CPU: Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz
我已经从llvm-projectrepository克隆了release/16.x
分支。在创建了build目录并移动到该目录下之后,我使用了以下命令:
user@system:~/llvm-project/build$ cmake -G "Ninja" -DLLVM_ENABLE_PROJECTS="lld;clang" -DLLVM_TARGETS_TO_BUILD="RISCV" -DCMAKE_BUILD_TYPE="Debug" -DLLVM_ENABLE_ASSERTIONS=On -DLLVM_PARALLEL_COMPILE_JOBS=1 -DLLVM_PARALLEL_LINK_JOBS=1 ../llvm
user@system:~/llvm-project/build$ ninja -j 1
- llvm* 本身的构建成功进行,但是,当bin/clang-16的链接过程开始时,系统挂起(显然使用了太多内存),过了一段时间,我得到了以下消息(snippet re-generated after core llvm build completed):
[0/613] Linking CXX executable bin/clang-16
FAILED: bin/clang-16
: && /usr/bin/c++ -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra
-Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long
-Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move
-Wno-noexcept-type ...
...
...
... lib/libLLVMDemangle.a -lrt -ldl -lpthread -lm && :
collect2: fatal error: ld terminated with signal 9 [killed]
compilation terminated.
ninja: build stopped: subcommand failed.
(* 我跳过了中间的一些行!*)
任何帮助都是受欢迎的。
附言:由于我将使用llvm和clang的源代码,所以我不希望构建release
。我认为真实的的问题是静态链接,我的计算机无法处理。我查看了Not able to build LLVM from its source code的答案,但无法确定在何处以及如何设置标志。此外,Fatal Error building the llvm source code in Ubuntu的答案也建议使用cmake标志。正确的标志组合应该是什么?
1条答案
按热度按时间fkaflof61#
考虑到链接的帖子和评论,我首先安装了clang-12(* Ubuntu 20.04可用的版本 ),然后使用了以下配置:( 确保build和installed目录存在于项目根目录下 *)
配置完成后,通过以下方式执行构建:
生成已成功完成(耗时约2小时10分钟)。后续的安装操作通过以下方式完成:
主要目标是用动态链接代替构建库的静态链接,以防止内存不足的问题,这会导致工具比它们应该的要慢(* 也就是说,从这个构建中产生的llvm工具会工作得更慢 *),但是,考虑到硬件限制,这是最好的方法。