我正在开始编写自己的clang工具。到目前为止,我已经按照以下步骤操作:
使用带有以下标志的忍者来构建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
已安装的clang
现在我想将clang设置为它自己的编译器。因此,我已经使用“ ccmake ../llvm”在配置文件中设置了这些标志。我不确定这是否是正确的选择?现在,我尝试构建clang,它说检测到的链接器是GNU ld。如何重置我的配置文件并实际更改链接器,以便更快?我有8GB RAM。
其次,每次编写工具时,我都必须一次又一次地构建clang吗?是否每次需要3-4个小时?
更新
正如Sandthorn在评论中所建议的那样,我使用ninja -j 1
将并行作业限制为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个其他未定义的参考错误。