llvm Связывание общей библиотеки CXX../../lib/libLTO.so ссылка на цель не определена

Я пытался установить компилятор тирамису

и однажды пытаясь установить его подмодули ( (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

Я не знаю, что я должен сделать, чтобы исправить эту новую ошибку, может кто-то помочь, пожалуйста.

1 ответ

Решение

Я не смог решить проблему сам, но я изменил способ установки тирамису.

Я обратил на это внимание и хочу обратить ваше внимание и на то, что может послужить вашему времени и успеху при установке.

  • Никогда не устанавливайте тирамису на виртуальную коробку, потому что тирамису требуется немного высокопроизводительная машина, я имею в виду, что как минимум 6 ГБ ОЗУ после компиляции потребляют>= 6 грамм.

    Означает, что лучше иметь раздел или систему Linux напрямую.

  • Вы можете столкнуться с проблемами от версии к версии, что означает, что некоторым удается установить его в 18.04, где некоторые в 16, где некоторые в 14. Поэтому, если вы потерпите неудачу в версии, никогда не сдавайтесь, попробуйте другую версию лучше, чем все еще парализованную.

  • Лучше не обедать ничего параллельно после установки тирамису.

  • Вы должны иметь хорошую сеть для клонирования подмодулей тирамису и тирамису на себя с сетью 35 Кбит / с, для клонирования всех вещей может потребоваться 24 часа.
  • Соблюдайте все перечисленные советы по установке тирамису, чтобы избежать проблем, например, если говорят, что вы должны сделать это в версии CMake 5.0, потому что они протестировали эту версию и гарантируют, что ничего не получится, так как в версии 6 она будет работать, поэтому будьте осторожны.

  • Если вы разбросали вещи так, чтобы не могли решить проблемы. Лучше все почистить и перезапустить с "0".

  • Будьте терпеливы: установка тирамису является довольно сложной задачей, так что будьте широки и дзен.

Мне потребовался один месяц, чтобы установить тирамису, у меня было много проблем. Но как только я установил его в раздел и тщательно выполнил шаги, описанные выше, я наконец смог успешно установить.

Удачи:).

Другие вопросы по тегам