Использование Protobuf, установленного в пользовательском месте в Linux с CMake? - PullRequest
0 голосов
/ 21 июня 2019

Я упаковываю все свои зависимости с помощью Conan IO для проекта C ++ с использованием CMake.Я скачал исходники Protobuf и собрал их.Затем я добавил их на Конане.

На сервере сборки я пытаюсь собрать свой проект CMake, но он не может найти мою библиотеку Protobuf должным образом.Вот журнал, который я получаю:

/home/user/Documents/project/test/build/venv/.conan/data/Protobuf/3.6.1/org/dev/package/80043e232e8ab07f4b25e67652a9490d9ad33d91/bin/protoc: error while loading shared libraries: libprotoc.so.17: cannot open shared object file: No such file or directory
CMake Warning at /home/username/Documents/project/test/build/venv/lib/python3.6/site-packages/cmake/data/share/cmake-3.10/Modules/FindProtobuf.cmake:455 (message):
  Protobuf compiler version doesn't match library version 3.6.1
Call Stack (most recent call first):
  /home/username/Documents/project/test/script/cmake/Env.cmake:139 (include)
  CMakeLists.txt:6 (include)


-- Found Protobuf: /home/username/Documents/project/test/build/venv/.conan/data/Protobuf/3.6.1/org/dev/package/80043e232e8ab07f4b25e67652a9490d9ad33d91/lib/libprotobuf.so;-lpthread (found version "3.6.1") 
/home/username/Documents/project/test/build/venv/.conan/data/Protobuf/3.6.1/org/dev/package/80043e232e8ab07f4b25e67652a9490d9ad33d91/bin/protoc: error while loading shared libraries: libprotoc.so.17: cannot open shared object file: No such file or directory
CMake Warning at /home/username/Documents/project/test/build/venv/lib/python3.6/site-packages/cmake/data/share/cmake-3.10/Modules/FindProtobuf.cmake:455 (message):
  Protobuf compiler version doesn't match library version 3.6.1
Call Stack (most recent call first):
  /home/username/Documents/project/test/src/shared/bysp/CMakeLists.txt:9 (find_package)


-- Found Protobuf: /home/username/Documents/project/test/build/venv/.conan/data/Protobuf/3.6.1/org/dev/package/80043e232e8ab07f4b25e67652a9490d9ad33d91/lib/libprotobuf.so;-lpthread;-lpthread (found version "3.6.1") 

Мне трудно понять, в чем проблема.Он говорит, что не может найти libprotoc.so.17, но этот файл существует в /lib в моем пакете conan.Затем он говорит, что нашел мою библиотеку.Я не понимаю, почему он дает мне предупреждение, а потом говорит, что нашел библиотеку.Кроме того, protobuf не установлен на сервере сборки.Все зависимости - это готовые двоичные файлы, загружаемые через ConanЯ использую FindProtobuf, чтобы найти protobuf.Должен ли я использовать что-то еще?

...