Файл libprotoc.so.22 не найден, но при установке protobuf-all-3.10.0 установлен libprotoc.so.21 - PullRequest
0 голосов
/ 25 октября 2019

В Ubuntu 18.04.02 Server Edition я скачал отсюда Protobuf-Releases protobuf-all-3.10.0.zip и, следуя указаниям здесь ProtocolBuffersReadme Я установил в /usr / local / lib / библиотеки:

(base) marco@pc:/usr/local/lib$ ls -lah | grep "libproto*"
-rw-r--r--  1 root root   14M Oct 25 11:27 libprotobuf-lite.a
-rwxr-xr-x  1 root root  1011 Oct 25 11:27 libprotobuf-lite.la
lrwxrwxrwx  1 root root    26 Oct 25 11:27 libprotobuf-lite.so -> libprotobuf-lite.so.21.0.0
lrwxrwxrwx  1 root root    26 Oct 25 11:27 libprotobuf-lite.so.21 -> libprotobuf-lite.so.21.0.0
-rwxr-xr-x  1 root root  5.3M Oct 25 11:27 libprotobuf-lite.so.21.0.0
-rw-r--r--  1 root root   88M Oct 25 11:27 libprotobuf.a
-rwxr-xr-x  1 root root   976 Oct 25 11:27 libprotobuf.la
lrwxrwxrwx  1 root root    21 Oct 25 11:27 libprotobuf.so -> libprotobuf.so.21.0.0
lrwxrwxrwx  1 root root    21 Oct 25 11:27 libprotobuf.so.21 -> libprotobuf.so.21.0.0
-rwxr-xr-x  1 root root   34M Oct 25 11:27 libprotobuf.so.21.0.0
-rw-r--r--  1 root root  136M Oct 25 11:27 libprotoc.a
-rwxr-xr-x  1 root root   992 Oct 25 11:27 libprotoc.la
lrwxrwxrwx  1 root root    19 Oct 25 11:27 libprotoc.so -> libprotoc.so.21.0.0
lrwxrwxrwx  1 root root    19 Oct 25 11:27 libprotoc.so.21 -> libprotoc.so.21.0.0
-rwxr-xr-x  1 root root   45M Oct 25 11:27 libprotoc.so.21.0.0
(base) marco@pc:/usr/local/lib$ 

Следуя этим указаниям: https://developers.google.com/protocol-buffers/docs/cpptutorial Я попытался скомпилировать протобуфер в следующем примере:

(base) marco@pc:~/protobuf-3.10.0/examples$ protoc -I=/usr/local/include -cpp_out=. 
$SRC_DIR/addressbook.proto
protoc: error while loading shared libraries: libprotoc.so.22: cannot open shared object file: No 
such file or directory

Обновления:

1) marco@pc:~$ which protoc
/usr/bin/protoc  

(base) marco@pc:/usr/bin$ ls -lah | grep protoc
-rwxr-xr-x  1 root   root     374K Oct 24 19:41 protoc

(base) marco@pc:/usr/bin$ ldd protoc
    linux-vdso.so.1 (0x00007fffc7fc6000)
    libprotoc.so.22 => not found
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6  
(0x00007f23bfea9000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 
(0x00007f23bfc91000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 
(0x00007f23bfa72000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f23bf681000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f23bf2e3000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f23c0436000)

Как решить проблему?

Обновление 2: Благодаря @Botje у меня появился второй, неизвестный мне, protoc в / usr / protoc. После удаления второй, который я установил ранее, "заново появился" и работал просто отлично

Marco

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...