/usr/lib/x86_64-linux-gnu/libLLVM-4.0.so.1: версия `LLVM_4.0 'не найдена

Я пытаюсь запустить инструмент, который использует Clang и LLVM. Имя инструмента - cppgrep, доступное с докере. Пожалуйста, найдите его в репозитории github - https://github.com/peter-can-talk/cppnow-2017. Я попытался использовать Ubuntu 16.04 и 17.10, я получил ту же ошибку, что и ниже:

root@522051d201d2:/home# ./cppgrep -help ./cppgrep: /usr/lib/x86_64-linux-gnu/libLLVM-4.0.so.1: version `LLVM_4.0' not found (required by ./cppgrep) ./cppgrep: /usr/lib/x86_64-linux-gnu/libclang-4.0.so.1: version `LLVM_4.0' not found (required by ./cppgrep) root@522051d201d2:/home#

После некоторого онлайн-поиска я обнаружил, что мне нужно настроить переменную окружения LD_LIBRARY_PATH. Итак, в качестве первого шага я нашел расположение файлов библиотек в докере, вы найдете следующий результат:

root@522051d201d2:/home# find / -iname *libclang*.so* /usr/lib/x86_64-linux-gnu/libclang-4.0.so /usr/lib/x86_64-linux-gnu/libclang-4.0.so.1 /usr/lib/llvm-4.0/lib/libclang.so.1 /usr/lib/llvm-4.0/lib/libclang-4.0.so /usr/lib/llvm-4.0/lib/libclang-4.0.0.so /usr/lib/llvm-4.0/lib/libclang.so /usr/lib/llvm-4.0/lib/libclang-4.0.so.1 /usr/lib/llvm-4.0/lib/clang/4.0.0/lib/linux/libclang_rt.dyndd-x86_64.so /usr/lib/llvm-4.0/lib/clang/4.0.0/lib/linux/libclang_rt.asan-i686.so /usr/lib/llvm-4.0/lib/clang/4.0.0/lib/linux/libclang_rt.asan-x86_64.so /usr/lib/llvm-4.0/lib/clang/4.0.0/lib/linux/libclang_rt.asan-i386.so

После этого шага я устанавливаю LD_LIBRARY_PATH следующим образом:

root@522051d201d2:/home# echo $LD_LIBRARY_PATH /usr/lib:/usr/lib/llvm-4.0/lib/:/usr/lib/x86_64-linux-gnu/

И, наконец, я экспортировал его, используя команду export LD_LIBRARY_PATH. Теперь, если я попытаюсь запустить инструмент cppgrep, я все равно получаю ту же ошибку. Команда для тестирования инструмента после сборки докера следующая: (1) cd в каталог cppgrep, например code/cppgrep, (2) введите контейнер докера и смонтируйте папку под / home: $ docker run -it -v $PWD:/home clang (3 ) запустите cppgrep с помощью команды ./cppgrep 'x' test.cpp. Предполагается, что возвращаемые функции и переменные имеют имя x.

Чтобы реплицировать ошибку, после загрузки и распаковки файла из репозитория github, создайте контейнер докера, используя команду $ docker build -t clang .. Затем следуйте 1,2,3 шагам в предыдущем параграфе.

0
задан 23 January 2018 в 21:29

0 ответов

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

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