Estou tentando executar uma ferramenta que usa o Clang e o LLVM. O nome da ferramenta é cppgrep disponível com a janela de encaixe. Por favor, encontre-o no repositório do github - link . Eu tentei usar o Ubuntu 16.04 e 17.10, eu tenho o mesmo erro como abaixo:
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#
Depois de uma pesquisa on-line, descobri que precisava configurar a variável de ambiente LD_LIBRARY_PATH. Então, como primeiro passo, encontrei a localização dos arquivos da biblioteca na janela de encaixe. Por favor, encontre a saída abaixo:
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
Após este passo, eu configurei o LD_LIBRARY_PATH da seguinte forma:
root@522051d201d2:/home# echo $LD_LIBRARY_PATH
/usr/lib:/usr/lib/llvm-4.0/lib/:/usr/lib/x86_64-linux-gnu/
E por último, eu o exportei usando o comando export LD_LIBRARY_PATH. Agora, se eu tentar executar a ferramenta cppgrep, ainda estou recebendo o mesmo erro. O comando para testar a ferramenta depois de criar a janela de encaixe é o seguinte: (1) cd
no diretório cppgrep, como code/cppgrep
, (2), insira o contêiner docker e monte a pasta em / home: $ docker run -it -v $PWD:/home clang
(3 ) execute cppgrep usando o comando ./cppgrep 'x' test.cpp
. É suposto retornar funções e variáveis que possuem nome x.
Para replicar o erro, após fazer o download e descompactar o arquivo do repositório do github, construa o contêiner do docker usando o comando $ docker build -t clang .
. Em seguida, siga 1,2,3 etapas no parágrafo acima.