11

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 バージョンをインストールしましたが、システム ヘッダーが更新されません。以前の投稿の 1 人のユーザーは、「最初に必要な protobuf を PATH 変数で指定する方法を見つけました。別のバージョンの protobuf を削除する必要はありません (他のことはその古いバージョンに依存していました)」とコメントしました。

誰かが私にステップバイステップで説明してもらえますか? または、システム ヘッダーを更新できますか? libprotoc に繋がる要素が多いので、それらを壊さないようにしたいです。

ありがとう

4

1 に答える 1