Версия ошибки буфера протокола

Я пытаюсь установить библиотеку Caffe, но у меня проблема с компиляцией из-за неправильной версии protobuf, установленной в моей системе.

In file included from .build_release/src/caffe/proto/caffe.pb.cc:5:0:
.build_release/src/caffe/proto/caffe.pb.h:17:2: error: #error This file was generated by an older version of protoc which is
#error This file was generated by an older version of protoc which is
^
.build_release/src/caffe/proto/caffe.pb.h:18:2: error: #error incompatible with your Protocol Buffer headers. Please
#error incompatible with your Protocol Buffer headers.  Please
^
.build_release/src/caffe/proto/caffe.pb.h:19:2: error: #error regenerate this file with a newer version of protoc.
#error regenerate this file with a newer version of protoc.

Я следовал за многими из предложенных подходов на форуме, и я думаю, что наиболее похожая проблема обсуждалась в этом посте.

В caffe.pb.h элемент управления:

#if 3002000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

Однако в моем системном заголовке (/usr/include/google/protobuf/stubs/common.h):

The current version, represented as a single integer to make comparison
easier:  major * 10^6 + minor * 10^3 + micro
define GOOGLE_PROTOBUF_VERSION 2005000

Из терминала команда protoc —version возвращает libprotoc 3.2.0.

Итак, я установил версию 3.2, но системные заголовки не обновляются.
Один пользователь в предыдущем посте прокомментировал: «Я нашел способ, указав нужный мне протобуф сначала в переменной PATH, без необходимости удалять другую версию протобуфа (другие вещи зависели от этой старой версии)».

Может кто-нибудь объяснить мне шаг за шагом, как я могу следовать этому?
Или я могу обновить системные заголовки? Есть много элементов, которые связаны с libprotoc, поэтому я хотел бы избежать их повреждения.

Спасибо

5

Решение

Я решил это на своем компьютере, и, возможно, это поможет вам. Моя среда — Ubuntu16.04, и я установил Anaconda (для python2.7) перед установкой Caffe. Бывает, что я использовал conda для установки libprotobuf-dev, и это приводит к конфликту с командой caffe ‘sudo apt-get install libprotobuf-dev’, так как ‘apt-get’ и conda установлены по-разному на моем компьютере, которые можно найти с помощью ‘locate protobuf’, поэтому я удаляю версию libprotobuf от Anaconda, и больше никаких проблем не возникает.

conda uninstall libprotobuf
conda uninstall protobuf

При установке tenorflow перед установкой Caffe эта проблема также возникает из-за конфликта libprotobuf.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]