Я упаковываю все свои зависимости с помощью 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
.Должен ли я использовать что-то еще?