Эта программа была скомпилирована для версии 2.6.1 библиотеки времени выполнения протокола Buffer, которая не совместима с установленной версией (3.5.0) - PullRequest
0 голосов
/ 21 мая 2019

Когда я копирую свой исполняемый файл и зависимости lib на другой компьютер и запускаю программу, я получаю эту ошибку:

Эта программа была скомпилирована с версией 2.6.1 библиотеки времени выполнения Protocol Buffer, котораянесовместим с установленной версией (3.5.0).Свяжитесь с автором программы для обновления.Если вы скомпилировали программу самостоятельно, убедитесь, что ваши заголовки относятся к той же версии буферов протокола, что и ваша библиотека времени компоновки.

Эта ошибка возникает только на новом компьютере.Я могу запустить свою программу на своем компьютере без каких-либо проблем.

Я попытался проверить с помощью ldd -d и objdump -p engine | grep NEEDED, какие из библиотек имеют протобуф в них, но я не могу их найти.

Моя программа использует: opencv с Cuda, boost, tenorflow, tenorRT.

Обе компьютерные ОС Ubuntu 16.04.6 LTS.

Как узнать, какая часть имеетпроблема с этим конфликтом?

Я попытался перекомпилировать opencv без protobuf, добавив -DBUILD_PROTOBUF=OFF -DPROTOBUF_UPDATE_FILES=ON -DPROTOBUF_INCLUDE_DIR=/usr/include -DPROTOBUF_LIBRARY=/usr/lib/x86_64-linux-gnu/libprotobuf.so.

Это не решило проблему.

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