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

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


person DINA TAKLIT    schedule 08.10.2018    source источник


Ответы (1)


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

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

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

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

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

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

  • Вам нужна хорошая сеть, чтобы клонировать подмодули тирамису и тирамису сам по себе с сетью 35 кбит / с, может потребоваться 24 часа, чтобы клонировать все вещи.

  • Соблюдайте все перечисленные советы по установке тирамису, чтобы избежать проблем, например, если вам сказали, что вы должны сделать это в версии CMake 5.0, потому что они протестировали эту версию, и они гарантируют, что ничего не работает, и что в версии 6 это будет работать, поэтому будьте осторожны.

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

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

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

Удачи :).

person DINA TAKLIT    schedule 12.11.2018