Зависимости разделяемых библиотек неверный путь

Я собрал clazy с помощью clang-12, но создатель Qt выдает ошибку:

Команда "/ usr / local / clazy / bin / clazy-standalone --version завершается кодом выхода 127. / usr / local / clazy / bin / clazy-standalone: ​​ошибка при загрузке общих библиотек: libclang-cpp.so.12: невозможно открыть файл общих объектов: нет такого файла или каталога

Я добавил правильные каталоги в .bashrc:

  • export PATH = / usr / local / clang-12 / bin: $ PATH
  • export LD_LIBRARY_PATH = / usr / local / clang-12 / lib: $ LD_LIBRARY_PATH

Вот распечатка зависимостей разделяемых объектов для clazy-standalone: ​​

    linux-vdso.so.1 (0x00007ffd9ebe0000)
    ClazyPlugin.so => /usr/local/clazy/lib/ClazyPlugin.so (0x00007f06c929d000)
    libclang-cpp.so.12 => /usr/local/clang-12/lib/libclang-cpp.so.12 (0x00007f06c4b2b000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f06c4b08000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f06c4b02000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f06c4adf000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f06c4990000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f06c4972000)
    libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007f06c4942000)
    libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f06c4761000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f06c4746000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f06c4554000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f06c9437000)

Вот распечатка зависимостей разделяемых объектов для libclang-cpp.so.12:

    linux-vdso.so.1 (0x00007ffee8df9000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fbe393b1000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fbe393a6000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fbe393a0000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fbe39251000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fbe39235000)
    libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007fbe39205000)
    libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fbe39022000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fbe39007000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbe38e15000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fbe3db60000)

libcland -cpp.so.12 не является символической ссылкой.

И снова комментарий @ N0rbert не представляет никакой ценности. У меня есть другие похожие проблемы, которые, как я подозреваю, связаны с этим типом проблем. Linux по какой-то причине не может найти или использовать указанные файлы.

Я нашел сообщения о проблемах с разделяемыми библиотеками с 2005 года, так что очевидно, что я не единственный.

Может ли кто-нибудь наконец дать правильный ответ о том, как справляться с такого рода проблемами? Таким образом, людям вроде меня не придется часами читать сообщения без ответов. Или это «особенность» Linux?

0
задан 13 June 2021 в 14:28

1 ответ

Да, хорошо. Поэтому я дал Linux шанс, и это фундаментальная проблема среди многих других, которую сообщество не исправило.

Если вы строите программы, не получайте ошибок, но общие библиотеки не работают, и у вас установлены все необходимые пакеты. Решение есть. Установите Windows, она действительно работает, и вам не придется тратить время на это печальное оправдание операционной системы.

0
ответ дан 28 July 2021 в 11:29

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

Похожие вопросы: