ターミナルコマンドラインを使用して、古いバージョンのGoogleプロトコルバッファ(protobuf-2.4.1)をMacにインストールしたいと思います。で試しましたbrew install protobuf
が、最新バージョン2.5.0がインストールされています。端末から旧バージョンをインストールすることは可能ですか?
ありがとう
ターミナルコマンドラインを使用して、古いバージョンのGoogleプロトコルバッファ(protobuf-2.4.1)をMacにインストールしたいと思います。で試しましたbrew install protobuf
が、最新バージョン2.5.0がインストールされています。端末から旧バージョンをインストールすることは可能ですか?
ありがとう
回答:
Mac上のソースからprotobuf 2.4.1をビルドする際にいくつかの問題があります。また、適用する必要があるパッチがあります。これはすべて自作のprotobuf241式に含まれているので、使用することをお勧めします。
プロトコルバッファバージョン2.4.1をインストールするには、次のように端末に入力します。
brew tap homebrew/versions
brew install protobuf241
ソースからインストールしようとしたプロトコルバッファーバージョンが既にある場合は、ターミナルに次のように入力して、ソースコードを自作バージョンで上書きできます。
brew link --force --overwrite protobuf241
次のように入力して、正しいバージョンがインストールされていることを確認します。
protoc --version
2.4.1と表示されます
Warning: homebrew/versions was deprecated. This tap is now empty as all its formulae were migrated.
これは醸造ではありませんが、最終結果は同じです。
手順4〜7は、protobuf tarballのREADME.txtファイルからのものです。
/protobuf/src/README.md
、私はそれがでたことを望む、README.md
中に/protobuf
ディレクトリ
Macにプロトコルバッファーをインストールする方法を探してここに着陸した場合、Homebrewを使用して以下のコマンドを実行できます。
brew install protobuf
入手可能な最新バージョンのprotobufをインストールします。私にとって、執筆の時点で、これはv3.7.1をインストールしました
古いバージョンをインストールする場合は、パッケージページProtobuf Package-Homebrewから使用可能なバージョンを検索し、その特定のバージョンのパッケージをインストールしてください。
このパッケージで利用可能な最も古いprotobufバージョンはv3.6.1.3です。
https://github.com/paulirish/homebrew-versions-1から。私のために働く!
brew install https://raw.githubusercontent.com/paulirish/homebrew-versions-1/master/protobuf241.rb
何らかの理由で、OS X El Capitanのプロジェクトでprotobuf 2.4.1を使用する必要があります。しかし、自作はその式からprotobuf241を削除しました。@kksenseiの回答に従って手動でインストールし、プロセス中のエラーを修正する必要があります。
makeプロセス中に、次のような3つのエラーが発生します。
google/protobuf/message.cc:130:60: error: implicit instantiation of undefined template 'std::__1::basic_istream<char, std::__1::char_traits<char> >'
return ParseFromZeroCopyStream(&zero_copy_input) && input->eof();
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/iosfwd:108:28: note: template is declared here
class _LIBCPP_TYPE_VIS basic_istream;
^
google/protobuf/message.cc:135:67: error: implicit instantiation of undefined template 'std::__1::basic_istream<char, std::__1::char_traits<char> >'
return ParsePartialFromZeroCopyStream(&zero_copy_input) && input->eof();
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/iosfwd:108:28: note: template is declared here
class _LIBCPP_TYPE_VIS basic_istream;
^
google/protobuf/message.cc:175:16: error: implicit instantiation of undefined template 'std::__1::basic_ostream<char, std::__1::char_traits<char> >'
return output->good();
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/iosfwd:110:28: note: template is declared here
class _LIBCPP_TYPE_VIS basic_ostream;
^
(申し訳ありませんが、コードに '`'が含まれている場合にコードを添付する方法がわかりません)
同じエラーが発生する場合は、src / google / protobuf / message.ccを編集し#include <istream>
、ファイルの先頭に追加して$ make
ください。そうすれば、エラーは発生しません。その後$ sudo make install
。インストールが完了$protoc --version
すると、正しい結果が表示されます。
brew install --devel protobuf
「protobuf-2.6.1はすでにインストールされています」と表示された場合:1. brew uninstall --devel protobuf
2. brew link libtool
3。brew install --devel protobuf
OSに応じてzipファイルをダウンロードします(例:protoc-3.7.0-osx-x86_64.zip)。これは他のOSにも当てはまります。
protoc-3 / bin / protocの実行可能ファイルをPATHのディレクトリの1つに移動します。Macでは/ usr / local / binに置くことをお勧めします
(オプション)インクルードファイルもあり、追加できます。これはREADME.mdのスニペットです
If you intend to use the included well known types then don't forget to
copy the contents of the 'include' directory somewhere as well, for example
into '/usr/local/include/'.
Please refer to our official github site for more installation instructions:
https://github.com/protocolbuffers/protobuf
別のユーザーが述べたように、Googleによる別の公式の方法があります。
試す前によく読んでください。
手順は次のとおりです。
ターミナルを開き、次のように入力します
PROTOC_ZIP=protoc-3.7.1-osx-x86_64.zip
curl -OL https://github.com/google/protobuf/releases/download/v3.7.1/$PROTOC_ZIP
sudo unzip -o $PROTOC_ZIP -d /usr/local bin/protoc
rm -f $PROTOC_ZIP
私のために働いた。
PS
これは、OSXのみのバージョン3.7.1の場合です。他のバージョン/プラットフォームをインストールする場合は、リリースリンクにアクセスして最新バージョンの詳細を確認し、それらの情報を使用してください。
参照
google http://google.github.io/proto-lens/installing-protoc.htmlが提供する公式リンクページからインストールできます
v3ユーザー向け。
http://google.github.io/proto-lens/installing-protoc.html
PROTOC_ZIP=protoc-3.7.1-osx-x86_64.zip
curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v3.7.1/$PROTOC_ZIP
sudo unzip -o $PROTOC_ZIP -d /usr/local bin/protoc
sudo unzip -o $PROTOC_ZIP -d /usr/local 'include/*'
rm -f $PROTOC_ZIP
HomeBrewバージョンが削除され、数式が空になりました。したがって、私のアドバイスは、次の手順に従って手動でインストールすることです。
当面は、プロトコルバッファツールセットを手動でビルドしてインストールする必要があります。
ソースコードをダウンロード:https : //github.com/google/protobuf/releases/download/v2.4.1/protobuf-2.4.1.tar.gz
tar xvfz protobuf-2.4.1.tar.gz
cd protobuf-2.4.1
走る ./configure
src / google / protobuf / message.ccを編集し、ファイルの先頭に#includeを追加します
make
フォルダのルート、つまりprotobuf-2.4.1 /からコマンドを実行します
走る sudo make install
実行/usr/local/bin/protoc --version
してprotobufコンパイラーのバージョンを確認します端末出力は次のようになります。
Version: libprotoc 2.4.1
.pb.h
および.pb.cc
ファイルを再生成する限り、下位互換性があります。