无法从源代码构建LLVM
我指的是从源代码构建LLVM。 我正在使用Ubuntu 18.04无法从源代码构建LLVM,llvm,Llvm,我指的是从源代码构建LLVM。 我正在使用Ubuntu 18.04 $ cmake -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo ../llvm $ cmake --build . 以下是错误: [2978/2994] Linking CXX shared library lib/libLTO.so.12git FAILED: lib/libLTO.so.12git : && /usr/bin/c++ -fPIC -fPIC -fvisi
$ cmake -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo ../llvm
$ cmake --build .
以下是错误:
[2978/2994] Linking CXX shared library lib/libLTO.so.12git
FAILED: lib/libLTO.so.12git
: && /usr/bin/c++ -fPIC -fPIC -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-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -fdiagnostics-color -ffunction-sections -fdata-sections -O2 -g -DNDEBUG -Wl,-z,defs -Wl,-z,nodelete -Wl,-rpath-link,/home/kumarpr/Praveer_LLVM/llvm-project/build/./lib -Wl,-O3 -Wl,--gc-sections -Wl,--version-script,"/home/kumarpr/Praveer_LLVM/llvm-project/build/tools/lto/LTO.exports" -shared -Wl,-soname,libLTO.so.12git -o lib/libLTO.so.12git tools/lto/CMakeFiles/LTO.dir/LTODisassembler.cpp.o tools/lto/CMakeFiles/LTO.dir/lto.cpp.o -Wl,-rpath,:::::::::::::: lib/libLLVMAArch64AsmParser.a lib/libLLVMAMDGPUAsmParser.a lib/libLLVMARMAsmParser.a lib/libLLVMAVRAsmParser.a lib/libLLVMBPFAsmParser.a lib/libLLVMHexagonAsmParser.a lib/libLLVMLanaiAsmParser.a lib/libLLVMMipsAsmParser.a lib/libLLVMMSP430AsmParser.a lib/libLLVMPowerPCAsmParser.a lib/libLLVMRISCVAsmParser.a lib/libLLVMSparcAsmParser.a lib/libLLVMSystemZAsmParser.a lib/libLLVMWebAssemblyAsmParser.a lib/libLLVMX86AsmParser.a lib/libLLVMAArch64CodeGen.a lib/libLLVMAMDGPUCodeGen.a lib/libLLVMARMCodeGen.a lib/libLLVMAVRCodeGen.a lib/libLLVMBPFCodeGen.a lib/libLLVMHexagonCodeGen.a lib/libLLVMLanaiCodeGen.a lib/libLLVMMipsCodeGen.a lib/libLLVMMSP430CodeGen.a lib/libLLVMNVPTXCodeGen.a lib/libLLVMPowerPCCodeGen.a lib/libLLVMRISCVCodeGen.a lib/libLLVMSparcCodeGen.a lib/libLLVMSystemZCodeGen.a lib/libLLVMWebAssemblyCodeGen.a lib/libLLVMX86CodeGen.a lib/libLLVMXCoreCodeGen.a lib/libLLVMAArch64Desc.a lib/libLLVMAMDGPUDesc.a lib/libLLVMARMDesc.a lib/libLLVMAVRDesc.a lib/libLLVMBPFDesc.a lib/libLLVMHexagonDesc.a lib/libLLVMLanaiDesc.a lib/libLLVMMipsDesc.a lib/libLLVMMSP430Desc.a lib/libLLVMNVPTXDesc.a lib/libLLVMPowerPCDesc.a lib/libLLVMRISCVDesc.a lib/libLLVMSparcDesc.a lib/libLLVMSystemZDesc.a lib/libLLVMWebAssemblyDesc.a lib/libLLVMX86Desc.a lib/libLLVMXCoreDesc.a lib/libLLVMAArch64Disassembler.a lib/libLLVMAMDGPUDisassembler.a lib/libLLVMARMDisassembler.a lib/libLLVMAVRDisassembler.a lib/libLLVMBPFDisassembler.a lib/libLLVMHexagonDisassembler.a lib/libLLVMLanaiDisassembler.a lib/libLLVMMipsDisassembler.a lib/libLLVMMSP430Disassembler.a lib/libLLVMPowerPCDisassembler.a lib/libLLVMRISCVDisassembler.a lib/libLLVMSparcDisassembler.a lib/libLLVMSystemZDisassembler.a lib/libLLVMWebAssemblyDisassembler.a lib/libLLVMX86Disassembler.a lib/libLLVMXCoreDisassembler.a lib/libLLVMAArch64Info.a lib/libLLVMAMDGPUInfo.a lib/libLLVMARMInfo.a lib/libLLVMAVRInfo.a lib/libLLVMBPFInfo.a lib/libLLVMHexagonInfo.a lib/libLLVMLanaiInfo.a lib/libLLVMMipsInfo.a lib/libLLVMMSP430Info.a lib/libLLVMNVPTXInfo.a lib/libLLVMPowerPCInfo.a lib/libLLVMRISCVInfo.a lib/libLLVMSparcInfo.a lib/libLLVMSystemZInfo.a lib/libLLVMWebAssemblyInfo.a lib/libLLVMX86Info.a lib/libLLVMXCoreInfo.a lib/libLLVMBitReader.a lib/libLLVMCore.a lib/libLLVMCodeGen.a lib/libLLVMLTO.a lib/libLLVMMC.a lib/libLLVMMCDisassembler.a lib/libLLVMSupport.a lib/libLLVMTarget.a lib/libLLVMMIRParser.a lib/libLLVMHexagonAsmParser.a lib/libLLVMLanaiAsmParser.a lib/libLLVMRISCVUtils.a lib/libLLVMGlobalISel.a lib/libLLVMCFGuard.a lib/libLLVMAsmPrinter.a lib/libLLVMDebugInfoDWARF.a lib/libLLVMSelectionDAG.a lib/libLLVMAArch64Desc.a lib/libLLVMAArch64Info.a lib/libLLVMAArch64Utils.a lib/libLLVMAMDGPUDesc.a lib/libLLVMAMDGPUInfo.a lib/libLLVMAMDGPUUtils.a lib/libLLVMARMDesc.a lib/libLLVMARMInfo.a lib/libLLVMARMUtils.a lib/libLLVMHexagonDesc.a lib/libLLVMHexagonInfo.a lib/libLLVMLanaiDesc.a lib/libLLVMLanaiInfo.a lib/libLLVMSystemZDesc.a lib/libLLVMSystemZInfo.a lib/libLLVMWebAssemblyDesc.a lib/libLLVMWebAssemblyInfo.a lib/libLLVMMCDisassembler.a lib/libLLVMCodeGen.a lib/libLLVMPasses.a lib/libLLVMTarget.a lib/libLLVMCoroutines.a lib/libLLVMipo.a lib/libLLVMScalarOpts.a lib/libLLVMVectorize.a lib/libLLVMFrontendOpenMP.a lib/libLLVMIRReader.a lib/libLLVMAsmParser.a lib/libLLVMInstrumentation.a lib/libLLVMHelloNew.a lib/libLLVMBitWriter.a lib/libLLVMAggressiveInstCombine.a lib/libLLVMExtensions.a lib/libLLVMInstCombine.a lib/libLLVMLinker.a lib/libLLVMObjCARCOpts.a lib/libLLVMTransformUtils.a lib/libLLVMAnalysis.a lib/libLLVMProfileData.a lib/libLLVMObject.a lib/libLLVMBitReader.a lib/libLLVMCore.a lib/libLLVMRemarks.a lib/libLLVMBitstreamReader.a lib/libLLVMMCParser.a lib/libLLVMMC.a lib/libLLVMDebugInfoCodeView.a lib/libLLVMDebugInfoMSF.a lib/libLLVMTextAPI.a lib/libLLVMBinaryFormat.a lib/libLLVMSupport.a -lrt -ldl -lpthread -lm /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libtinfo.so lib/libLLVMDemangle.a && :
collect2: fatal error: ld terminated with signal 9 [Killed]
compilation terminated.
[2980/2994] Linking CXX executable bin/opt
FAILED: bin/opt
: && /usr/bin/c++ -fPIC -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-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -fdiagnostics-color -ffunction-sections -fdata-sections -O2 -g -DNDEBUG -Wl,--export-dynamic -Wl,-rpath-link,/home/kumarpr/Praveer_LLVM/llvm-project/build/./lib -Wl,-O3 tools/opt/CMakeFiles/opt.dir/AnalysisWrappers.cpp.o tools/opt/CMakeFiles/opt.dir/BreakpointPrinter.cpp.o tools/opt/CMakeFiles/opt.dir/GraphPrinters.cpp.o tools/opt/CMakeFiles/opt.dir/NewPMDriver.cpp.o tools/opt/CMakeFiles/opt.dir/PassPrinters.cpp.o tools/opt/CMakeFiles/opt.dir/PrintSCC.cpp.o tools/opt/CMakeFiles/opt.dir/opt.cpp.o -o bin/opt -Wl,-rpath,:::::::::::::: lib/libLLVMAArch64AsmParser.a lib/libLLVMAMDGPUAsmParser.a lib/libLLVMARMAsmParser.a lib/libLLVMAVRAsmParser.a lib/libLLVMBPFAsmParser.a lib/libLLVMHexagonAsmParser.a lib/libLLVMLanaiAsmParser.a lib/libLLVMMipsAsmParser.a lib/libLLVMMSP430AsmParser.a lib/libLLVMPowerPCAsmParser.a lib/libLLVMRISCVAsmParser.a lib/libLLVMSparcAsmParser.a lib/libLLVMSystemZAsmParser.a lib/libLLVMWebAssemblyAsmParser.a lib/libLLVMX86AsmParser.a lib/libLLVMAArch64CodeGen.a lib/libLLVMAMDGPUCodeGen.a lib/libLLVMARMCodeGen.a lib/libLLVMAVRCodeGen.a lib/libLLVMBPFCodeGen.a lib/libLLVMHexagonCodeGen.a lib/libLLVMLanaiCodeGen.a lib/libLLVMMipsCodeGen.a lib/libLLVMMSP430CodeGen.a lib/libLLVMNVPTXCodeGen.a lib/libLLVMPowerPCCodeGen.a lib/libLLVMRISCVCodeGen.a lib/libLLVMSparcCodeGen.a lib/libLLVMSystemZCodeGen.a lib/libLLVMWebAssemblyCodeGen.a lib/libLLVMX86CodeGen.a lib/libLLVMXCoreCodeGen.a lib/libLLVMAArch64Desc.a lib/libLLVMAMDGPUDesc.a lib/libLLVMARMDesc.a lib/libLLVMAVRDesc.a lib/libLLVMBPFDesc.a lib/libLLVMHexagonDesc.a lib/libLLVMLanaiDesc.a lib/libLLVMMipsDesc.a lib/libLLVMMSP430Desc.a lib/libLLVMNVPTXDesc.a lib/libLLVMPowerPCDesc.a lib/libLLVMRISCVDesc.a lib/libLLVMSparcDesc.a lib/libLLVMSystemZDesc.a lib/libLLVMWebAssemblyDesc.a lib/libLLVMX86Desc.a lib/libLLVMXCoreDesc.a lib/libLLVMAArch64Info.a lib/libLLVMAMDGPUInfo.a lib/libLLVMARMInfo.a lib/libLLVMAVRInfo.a lib/libLLVMBPFInfo.a lib/libLLVMHexagonInfo.a lib/libLLVMLanaiInfo.a lib/libLLVMMipsInfo.a lib/libLLVMMSP430Info.a lib/libLLVMNVPTXInfo.a lib/libLLVMPowerPCInfo.a lib/libLLVMRISCVInfo.a lib/libLLVMSparcInfo.a lib/libLLVMSystemZInfo.a lib/libLLVMWebAssemblyInfo.a lib/libLLVMX86Info.a lib/libLLVMXCoreInfo.a lib/libLLVMAggressiveInstCombine.a lib/libLLVMAnalysis.a lib/libLLVMAsmParser.a lib/libLLVMBitWriter.a lib/libLLVMCodeGen.a lib/libLLVMCore.a lib/libLLVMCoroutines.a lib/libLLVMExtensions.a lib/libLLVMipo.a lib/libLLVMIRReader.a lib/libLLVMInstCombine.a lib/libLLVMInstrumentation.a lib/libLLVMMC.a lib/libLLVMObjCARCOpts.a lib/libLLVMRemarks.a lib/libLLVMScalarOpts.a lib/libLLVMSupport.a lib/libLLVMTarget.a lib/libLLVMTransformUtils.a lib/libLLVMVectorize.a lib/libLLVMPasses.a -lpthread lib/libLLVMAArch64Utils.a lib/libLLVMCoroutines.a lib/libLLVMObjCARCOpts.a lib/libLLVMHelloNew.a lib/libLLVMAMDGPUUtils.a lib/libLLVMMIRParser.a lib/libLLVMARMUtils.a lib/libLLVMHexagonAsmParser.a lib/libLLVMHexagonDesc.a lib/libLLVMHexagonInfo.a lib/libLLVMLanaiAsmParser.a lib/libLLVMLanaiDesc.a lib/libLLVMLanaiInfo.a lib/libLLVMipo.a lib/libLLVMIRReader.a lib/libLLVMAsmParser.a lib/libLLVMInstrumentation.a lib/libLLVMFrontendOpenMP.a lib/libLLVMLinker.a lib/libLLVMVectorize.a lib/libLLVMRISCVUtils.a lib/libLLVMMCDisassembler.a lib/libLLVMGlobalISel.a lib/libLLVMCFGuard.a lib/libLLVMAsmPrinter.a lib/libLLVMDebugInfoDWARF.a lib/libLLVMSelectionDAG.a lib/libLLVMCodeGen.a lib/libLLVMBitWriter.a lib/libLLVMScalarOpts.a lib/libLLVMAggressiveInstCombine.a lib/libLLVMInstCombine.a lib/libLLVMTarget.a lib/libLLVMTransformUtils.a lib/libLLVMAnalysis.a lib/libLLVMProfileData.a lib/libLLVMObject.a lib/libLLVMMCParser.a lib/libLLVMMC.a lib/libLLVMDebugInfoCodeView.a lib/libLLVMDebugInfoMSF.a lib/libLLVMBitReader.a lib/libLLVMTextAPI.a lib/libLLVMCore.a lib/libLLVMRemarks.a lib/libLLVMBitstreamReader.a lib/libLLVMBinaryFormat.a lib/libLLVMSupport.a -lrt -ldl -lpthread -lm /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/x86_64-linux-gnu/libtinfo.so lib/libLLVMDemangle.a && :
collect2: fatal error: ld terminated with signal 9 [Killed]
compilation terminated.
[2982/2994] Linking CXX executable bin/llvm-isel-fuzzer
FAILED: bin/llvm-isel-fuzzer
有人对此有所了解吗?如评论中所述,您很可能内存不足:默认情况下,所有可执行文件都是静态链接的,因此
ld
s会使用大量RAM。有几种方法可以解决这一问题:
-DLLVM\u PARALLEL\u link\u JOBS=1减少链接并行性,以避免并行启动过多链接(顺便说一句,对于通用代码库,可以使用它来实现相同的效果)
-Wl,-no keep memory
和-Wl中的一个或两个来减少消耗的内存,-减少内存开销
链接器标志(将它们添加到CMAKE\u EXE\u linker\u标志
)
-fuse ld=Gold
)或lld(通过-fuse ld=lld
)链接器(将开关添加到CMAKE_EXE_链接器_标志
)
-DBUILD\u SHARED\u LIBS=ON
使用共享链接,而不是静态链接。您将不再拥有oom,而且增量Clang构建速度将提高100倍(代价是Clang运行时间降低2-3倍)
正如在注释中提到的,您很可能内存不足:默认情况下,所有可执行文件都是静态链接的,因此
ld
s会使用大量RAM。有几种方法可以解决这一问题:
-DLLVM\u PARALLEL\u link\u JOBS=1减少链接并行性,以避免并行启动过多链接(顺便说一句,对于通用代码库,可以使用它来实现相同的效果)
-Wl,-no keep memory
和-Wl中的一个或两个来减少消耗的内存,-减少内存开销
链接器标志(将它们添加到CMAKE\u EXE\u linker\u标志
)
-fuse ld=Gold
)或lld(通过-fuse ld=lld
)链接器(将开关添加到CMAKE_EXE_链接器_标志
)
-DBUILD\u SHARED\u LIBS=ON
使用共享链接,而不是静态链接。您将不再拥有oom,而且增量Clang构建速度将提高100倍(代价是Clang运行时间降低2-3倍)
尝试构建一个特定的发布标签,而不是主/主分支。只是想知道它会有什么不同。签出LLVM(包括相关的子项目,如Clang):git clone或在windows上的git clone--config core.autocrlf=false这会有所不同,因为没有人保证像master这样的不稳定分支始终能够成功编译,但发布标记必须始终成功。您可能正在耗尽内存。“实际上我并没有耗尽内存”-你怎么知道的?尝试运行
make-j1
-如果成功,您正在运行OOM。尝试构建一个特定的发布标签,而不是主/主分支。只是想知道它会有什么不同。签出LLVM(包括相关的子项目,如Clang):git clone或在windows上的git clone--config core.autocrlf=false这会有所不同,因为没有人保证像master这样的不稳定分支始终能够成功编译,但发布标记必须始终成功。您可能正在耗尽内存。“实际上我并没有耗尽内存”-你怎么知道的?尝试运行make-j1
-如果成功,您将运行OOM。现在我使用以下命令:“cmake-G Ninja-DCMAKE\u BUILD\u TYPE=Release-DLLVM\u PARALLEL\u LINK\u JOBS=1../llvm”
make--BUILD。我没有看到任何错误,但似乎它并没有构建所有内容,构建几乎不需要10分钟完成。下面是终端上的消息:[2994/2994]链接CXX共享模块unittests/Pass/TestPlugin。那么
有什么问题吗。我第一次从源代码构建LLVM。所以我不知道这是预期的还是预期的not@PraveerKumar“似乎它没有构建所有内容”-bin/?中是否缺少任何特定的可执行文件?我可以看到它在bin文件夹中生成了83个文件。我得到了我正在寻找的libs文件。感谢我使用下面的lotNow命令:“cmake-G Ninja-DCMAKE\u BUILD\u TYPE=Release-DLLVM\u PARALLEL\u LINK\u JOBS=1../llvm”
make--BUILD.
我没有看到任何错误,但似乎它并没有构建所有内容,构建几乎不需要10分钟就可以完成。下面是终端上的消息:[2994/2994]链接CXX共享模块unittests/Pass/TestPlugin。那么
有什么问题吗。我第一次从源代码构建LLVM。所以我不知道这是预期的还是预期的not@PraveerKumar“似乎它没有构建所有内容”-bin/?中是否缺少任何特定的可执行文件?我可以看到它在bin文件夹中生成了83个文件。我得到了我正在寻找的libs文件。谢谢