llvm 链接 CXX 共享库 ../../lib/libLTO.so 未定义对目标的引用

llvm Linking CXX shared library ../../lib/libLTO.so undefiened refernece to target

我尝试安装提拉米苏编译器

一旦尝试使用此命令安装它的子模块((ISL、LLVM 和 Halide)

dina@dina-VBox:~/tiramisu$ ./utils/scripts/install_submodules.sh ./

我收到错误

Done installing isl
#### Installing LLVM ####
cd .//3rdParty/llvm
.//utils/scripts/functions.sh: line 6: cd: .//3rdParty/llvm: No such file or directory

为了修复它,我使用了答案中共享的命令

./utils/scripts/install_submodules.sh $PWD

它比第一个效果更好,我达到了安装的 95%,但是它因这个错误而停在这里

Linking CXX shared library ../../lib/libLTO.so undefiened refernece to target

这是错误的详细信息

   [ 95%] Linking CXX executable ../../bin/opt
    [ 95%] Linking CXX shared library ../../lib/libLTO.so
    ../../lib/libLLVMX86AsmParser.a(X86AsmParser.cpp.o): In function `llvm::RegisterMCAsmParser<(anonymous namespace)::X86AsmParser>::Allocator(llvm::MCSubtargetInfo const&, llvm::MCAsmParser&, llvm::MCInstrInfo const&, llvm::MCTargetOptions const&)':
    X86AsmParser.cpp:(.text._ZN4llvm19RegisterMCAsmParserIN12_GLOBAL__N_112X86AsmParserEE9AllocatorERKNS_15MCSubtargetInfoERNS_11MCAsmParserERKNS_11MCInstrInfoERKNS_15MCTargetOptionsE+0x164): undefined reference to `llvm::CreateX86AsmInstrumentation(llvm::MCTargetOptions const&, llvm::MCContext const&, llvm::MCSubtargetInfo const*&)'
    CMakeFiles/llvm-mc.dir/llvm-mc.cpp.o: In function `main':
    llvm-mc.cpp:(.text.startup.main+0xe4): undefined reference to `LLVMInitializeX86Disassembler'
    ../../lib/libLLVMX86Desc.a(X86MCTargetDesc.cpp.o): In function `LLVMInitializeX86TargetMC':
    X86MCTargetDesc.cpp:(.text.LLVMInitializeX86TargetMC+0xc7): undefined reference to `llvm::createX86_32AsmBackend(llvm::Target const&, llvm::MCRegisterInfo const&, llvm::Triple const&, llvm::StringRef, llvm::MCTargetOptions const&)'

...
...


    ../../lib/libLLVMAArch64CodeGen.a(AArch64TargetObjectFile.cpp.o):(.data.rel.ro._ZTVN4llvm29AArch64_MachoTargetObjectFileE[_ZTVN4llvm29AArch64_MachoTargetObjectFileE]+0xa0): undefined reference to `llvm::TargetLoweringObjectFileMachO::SelectSectionForGlobal(llvm::GlobalObject const*, llvm::SectionKind, llvm::TargetMachine const&) const'
    collect2: error: ld returned 1 exit status
    tools/opt/CMakeFiles/opt.dir/build.make:349: recipe for target 'bin/opt' failed
    make[2]: *** [bin/opt] Error 1
    CMakeFiles/Makefile2:44345: recipe for target 'tools/opt/CMakeFiles/opt.dir/all' failed
    make[1]: *** [tools/opt/CMakeFiles/opt.dir/all] Error 2
    Makefile:151: recipe for target 'all' failed
    make: *** [all] Error 2
    dina@dina-VBox:~/tiramisu$ ^C

我不知道我应该怎么做才能解决这个新错误,请有人帮忙。

我无法自行解决问题,但我已经更改了安装提拉米苏的方式。

我确实注意到了这一点,我也确实想引起您的注意,这可能会为您节省时间并使您的安装成功。

  • 永远不要在虚拟机上安装 tiramisu 因为 tiramisu 需要一点高性能的机器我的意思是至少 6G 的 RAM 一旦编译它消耗 >= 6GRAM。

    表示最好有分区或者直接Linux系统

  • 你可能会发现版本之间的问题意味着有些人在 18.04 中成功安装它,有些人在 16 中,有些人在 14 中。所以如果你在版本中失败永远不要放弃尝试另一个更好的版本然后仍然瘫痪了。

  • 安装提拉米苏后最好不要同时吃任何东西。

  • 你需要一个良好的网络来克隆 tiramisu 子模块和 tiramisu 本身,35kb/s 的网络可能需要 24 小时才能克隆所有东西。

  • 尊重列出的所有安装提拉米苏的提示,以避免遇到麻烦,如果说你应该在 CMake 5.0 版本中安装它,因为他们已经在这个版本中进行了测试,并且他们确保在这个版本中没有任何作用6 版本它会工作所以要小心。

  • 如果您以无法解决问题的方式分散了东西。不如清理一切,从“0”重新开始。

  • 耐心一点:安装提拉米苏是一件比较繁重的工作,所以要心胸开阔,禅心。

我花了一个月的时间才能够安装提拉米苏,我遇到了很多问题。但是一旦我将它安装到分区中并仔细执行上面显示的步骤后,我终于安装成功了。

祝你好运:).