[ProtoBuf] 2. 環境構築

v2-51ee98b05ce2ada206b744b6ff86cbd1_r
——————————— ダンスのない毎日は人生にとって失望です。

PS: インストール中に多くのエラーが発生しました。軽量クラウド サーバーのパフォーマンスが十分ではない可能性があります。また、途中でいくつかの設定エラーがあります。最後に、仮想マシンが使用されます。この問題の解決策は、次のとおりです。問題は解決策の欄にあります

1. Protofbuf-Win をインストールする

ダウンロード アドレス:リリース プロトコル バッファー v21.11 プロトコルバッファー/protobuf (github.com)

画像-20230520170513411

必要なバージョンに応じてインストールできますが、私はWin64を使用しているので赤枠のバージョンがインストールされています。

2. 環境変数を設定する

  1. ダウンロード後、圧縮パッケージを特定の場所で解凍し、解凍されたフォルダーを開きます。

画像-20230520170837110

  1. bin ディレクトリに入り、その中のアドレスをコピーします。

画像-20230520170922805

  1. 「システム環境変数の編集」を検索して入力します。

画像-20230520171017675

クリック:画像-20230520171102815

次:画像-20230520171201632

画像-20230520171334285

3. 追加が成功したかどうかを確認します

  1. ターミナルを開きます: ショートカット キー (Win + R)、「cmd」と入力してターミナルに入ります。

画像-20230520171448625

  1. 「OK」をクリックし、ターミナルに入り、「protoc --version」と入力します。

  2. 次の結果が表示されれば、構成は成功しています。

画像-20230520171607866


4. Linux での Protobuf インストール パッケージのインストール

1. ProtoBufをダウンロードする

ProtoBuf をダウンロードする前に、依存ライブラリをインストールする必要があります。 autoconf automake libtoolcurl make g++ unzip
インストールされていない場合、インストール コマンドは次のとおりです。

Ubuntu ユーザーは以下を選択します。

sudo apt-get install autoconf automake libtool curl make g++ unzip -y

Centos ユーザーは以下を選択します。

sudo yum install autoconf automake libtool curl make gcc_c++ unzip

上記のダウンロードが完了したら、次の操作に進みます。

ProtoBuf ダウンロード アドレス 21.11 パス: Release Protocol Buffers v21.11 protocolbufs/protobuf (github.com)

C++ バージョンの場合は、次のファイルをダウンロードします。画像-20230520172749489

さまざまな言語 (Java、C++、php など) で使用したい場合は、2 番目のファイルをダウンロードします。画像-20230520172855274

互換性を高めるために、2 番目のファイルをダウンロードし、右クリックしてリンクをコピーし、 xshell: と入力して、wget先ほどのリンクを xshell に貼り付けることにします。画像-20230520173113338

実際には、圧縮されたパッケージとその中のコードを Linux 環境にダウンロードすることになります。(ダウンロードには時間がかかります。)

画像-20230520173658847

ダウンロードが完了しました。

2. アーカイブを解凍します。

注文:unzip protobuf-all-21.11.zip

画像-20230520173838115

解凍後のこのディレクトリがソースコードの内容になります。

画像-20230520173941510

内部のファイルを通じて、プログラムを実際にインストールできます。

3. ProtoBufをインストールする

# 第⼀步执⾏autogen.sh,但如果下载的是具体的某⼀⻔语⾔,不需要执⾏这⼀步。
./autogen.sh
# 第⼆步执⾏configure,有两种执⾏⽅式,任选其⼀即可,如下:
# 1、protobuf默认安装在 /usr/local ⽬录,lib、bin都是分散的
./configure
# 2、修改安装⽬录,统⼀安装在/usr/local/protobuf下
./configure --prefix=/usr/local/protobuf
  1. 入力./autogen.sh

画像-20230520174227949

ちょっと待ってください〜

画像-20230520174301153

終了。

  1. 入力:./configure --prefix=/usr/local/protobuf

その後順番に実行していきます

make // 执⾏15分钟左右
make check // 执⾏15分钟左右
sudo make install
  1. 入力:make

(前の手順で makefile が生成されているので、make を実行できるようになります。この手順には長い時間がかかります (約 15 分)

画像-20230520174642035

長い時間 …

画像-20230520180036526

  1. 输入make check

(この処理は検出ですので必須ではありません)

実行後はmake check以下の内容が実行可能になりますsudo make install

画像-20230520180237842

テストで FAIL が発生した場合、つまり次の状況です。

画像-20230520210452117

問題は、テスト モジュールに多数のテスト ケースがあることです。一部のテスト ケースにはサーバー環境に関する要件が非常に厳しく、スワップ パーティションを増やす必要がありますが、その後の通常の使用には影響しないため、これはスキップできます。ステップ。後でヘッダファイルにエラーがある場合は、コンパイラのバージョンが低いことを意味するため、g++ を 8 にアップグレードする必要があり、通常のインストール方法は 4.8.5 までであるため、他の設定方法が必要です。

  1. 入力sudo make install

画像-20230521142706292

終了。

4. 最終的な追加事項

この時点で、configure を実行するときに最初の実行方法、つまり ./configure を選択すると、通常どおり protobuf を使用できることを思い出してください。2 番目の実行方法を選択した場合、つまりインストール ディレクトリを変更した場合は、/etc/profile にコンテンツを追加する必要もあります。

sudo vim /etc/profile
# 添加内容如下:
#(动态库搜索路径) 程序加载运⾏期间查找动态链接库时指定除了系统默认路径之外的其他路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib/
#(静态库搜索路径) 程序编译期间查找动态链接库时指定查找共享库的路径
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/protobuf/lib/
#执⾏程序搜索路径
export PATH=$PATH:/usr/local/protobuf/bin/
#c程序头⽂件搜索路径
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf/include/
#c++程序头⽂件搜索路径
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/protobuf/include/
#pkg-config 路径
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/

最後のステップは、/etc/profile ファイルを再実行することです。

source /etc/profile

5. インストールが成功したかどうかを確認します

protoc --version と入力してバージョンを表示します。バージョンが表示されていれば、インストールは成功しています。

cfy@139-159-150-152:~/install/protobuf-21.11$ protoc --version
libprotoc 3.21.11

5. g++ をバージョン 8 にアップグレードします。

前述したように、g++ が最新バージョンにアップグレードされていない場合、以降の操作でヘッダー ファイルがエラーを報告するため、以下の g++ コンパイラを設定しましょう。

[解決策] g++ をバージョン 8 にアップグレード_毎日進歩する~ Blog-CSDN Blog

おすすめ

転載: blog.csdn.net/NEFUT/article/details/130945050