代码之家  ›  专栏  ›  技术社区  ›  DINA TAKLIT

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

  •  0
  • DINA TAKLIT  · 技术社区  · 7 年前

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

    一旦尝试安装它的子模块((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
    

    为了解决这个问题,我使用了答案上共享的命令 here

    ./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
    

    1 回复  |  直到 7 年前
        1
  •  1
  •   Community Mohan Dere    6 年前

    我还不能解决问题,但我已经改变了安装提拉米苏的方式。

    • 意味着最好直接使用分区或Linux系统。

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

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

    • 尊重所有列出的提示安装提拉米苏,以避免有麻烦前,如果它说你应该CMake 5.0版这样做,因为他们已经在这个版本测试,他们确保工作没有被授权人,在6版将工作,所以要小心。

    • 如果你把事情分散在你无法解决的问题上。最好清除所有内容并从“0”重新启动。

    • 耐心点:安装提拉米苏的任务有点重,所以要心胸开阔,要有禅意。

    安装提拉米苏花了我一个月的时间,我遇到了很多问题。但一旦我把它安装在一个分区中,并仔细执行上面的步骤,我就终于成功地安装了。

    推荐文章