3

我开始编写自己的 clang 工具。这些是我到目前为止所遵循的步骤:

  1. 签出 llvm 7.0 发行版
  2. 签出 clang 7.0 发布版本
  3. 使用带有以下标志的 ninja 构建了 clang 和 llvm(没有这些,它一直挂在我身上)

    -DLLVM_USE_LINKER=gold -DLLVM_PARALLEL_LINK_JOBS=1 -DLLVM_LINK_LLVM_DYLIB=true -DLLVM_USE_SPLIT_DWARF=ON -DBUILD_SHARED_LIBS=ON

  4. 安装铿锵

现在我想将 clang 设置为它自己的编译器。所以我使用'ccmake ../llvm'在配置文件中设置了这些标志。我不确定这是否是正确的做法?现在我尝试构建clang,它说检测到的链接器是GNU ld。如何重置我的配置文件并实际更改链接器以使其更快?我有 8GB 内存。

其次,每次编写工具时,我是否必须一次又一次地构建 clang?每次需要3-4个小时吗?

更新 正如 sandthorn 在评论中所建议的那样,我通过使用将并行作业限制为 1 ninja -j 1。但是,构建再次失败并出现以下错误:

[3840/4138] Linking CXX shared library lib/libLTO.so.7
FAILED: lib/libLTO.so.7 
: && /usr/bin/c++ -fPIC -fPIC -fvisibility-inlines-hidden -Werror=date-time -std=c++11 -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wno-maybe-uninitialized -Wdelete-non-virtual-dtor -Wno-comment -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete -fuse-ld=gold   -Wl,-O3 -Wl,--gc-sections  -Wl,--version-script,/home/tehreem/clang-llvm/build/tools/lto/LTO.exports -shared -Wl,-soname,libLTO.so.7 -o lib/libLTO.so.7 tools/lto/CMakeFiles/LTO.dir/LTODisassembler.cpp.o tools/lto/CMakeFiles/LTO.dir/lto.cpp.o  -Wl,-rpath,"\$ORIGIN/../lib" lib/libLLVM-7.so && :

在此之后,还有大约 100 个其他未定义的参考错误。

4

0 回答 0