https://www.jianshu.com/p/83fde1089fea
1ソースのダウンロード
git clone https://github.com/protocolbuffers/protobuf.git
cd protobuf/
git submodule update --init --recursive
./autogen.sh
2つの準備
次のツールを確実にインストールする前に、なくて自己インストールします。
autoconf
automake
libtool
make
g++
unzip
Ubuntuの/ Debianでは、あなたがそれらをインストールすることができます:
$ 須藤はapt-getをインストールしたautoconf automakeにlibtoolをカールさせるG ++解凍
3インストールいるProtobuf
そして、少し長くインストールするには、次のコマンドを実行し、(自動化スクリプトを記述することができ、段階的に実行する必要がない)患者であります:
./configure
make
make check
sudo make install
sudo ldconfig # refresh shared library cache.
この一般的で
は/ usr / local / libパスの下libprotobufライブラリ
一般protocでは/ usr / local /ビン・パス
4環境設定
以上の二つのファイル、私の実際の環境設定では、次のコマンド、特定のパスの特定の変化の経路に基づいて、次の環境設定、
$ sudo vim /etc/profile
加えます
export PATH=$PATH:/usr/local/bin/
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/
保存の実行
source /etc/profile
5のconfigure動的ライブラリパス
sudo vim /etc/ld.so.conf
追加
/usr/local/protobuf/lib
そして、ルートなどの動的ライブラリパスを更新
ldconfig
./configure -prefix=/usr/local/
sudo make #要编译很久
sudo make check
sudo make install
エラーケース1:
configure:エラー:無効な変数名: `-prefix」
正しい形式:接頭辞の前「 - 」に「 - 」
例如:./のconfigure --with-http_stub_status_module "--prefix =は/ usr / Webサービス/ nginxの" --with-PCRE = /ホーム/タング/下载/pcre-8.20
エラーケース2:
私がいたとき、須藤はミスを犯します
V2X @ Ubuntuの:〜/デスクトップ/いるProtobuf /いるProtobuf-3.6.1 $ sudoをメイク
するすべての再帰的な
メイク[1]:入力ディレクトリ'/home/v2x/Desktop/protoBuf/protobuf-3.6.1'
すべてに作ります。
メイク[2]:ディレクトリ'/home/v2x/Desktop/protoBuf/protobuf-3.6.1'に入る
メイクを[2]:ディレクトリ'/home/v2x/Desktop/protoBuf/protobuf-3.6.1'を残して
すべてのSRCで作ります
作る[2]:ディレクトリ'/home/v2x/Desktop/protoBuf/protobuf-3.6.1/src'入力
depbaseを= `エコー/いるProtobuf /スタブ/ bytestream.loグーグル| SEDさん| [^ /] * $ | .deps /&|; S | \ $ .LO || '、 `; \
../-libtool --tag = CXX --mode =コンパイルG ++ -DHAVE_CONFIG_H -I。-I .. -pthread -DHAVE_PTHREAD = 1 -DHAVE_ZLIB = 1 -Wall -Wno-SIGN-比較-O2 -g -std = C ++ 11 -DNDEBUG -MTグーグル/いるProtobuf /スタブ/ bytestream.lo -MD -MP -MF $ depbase.Tpo -c -oグーグル/いるProtobuf /スタブ/ bytestream.loグーグル/いるProtobuf /スタブ/ bytestream.cc && \
MV -f $ depbase.Tpo $ depbase.Plo
/ binに/ bashの:行1:。 ./-libtool:アクセス許可が拒否されました
3969::Makefileをターゲットのためのレシピの'Google /いるProtobuf /スタブ/ bytestream.lo'失敗
メイク[2]:*** [グーグル/いるProtobuf /スタブ/ bytestream.lo]エラー126
メイク[2 ]:ディレクトリ'/home/v2x/Desktop/protoBuf/protobuf-3.6.1/src'残す
1537:Makefileのターゲットのためのレシピを'すべての再帰的'失敗
メイク[1]:*** [すべての再帰]エラー1
メイク[1]:ディレクトリ'/home/v2x/Desktop/protoBuf/protobuf-3.6.1'のまま
'すべて'失敗したターゲットのためのレシピ:1444:Makefileを
問題:
pythonの使用いるProtobuf出错:protoc:エラーロードは共有ライブラリながら:libprotoc.so.9:共有オブジェクトファイルを開くことができません:そのようなの...
解決策:Linuxのタップコマンド:輸出LD_LIBRARY_PATH =は/ usr / local / libに