Apache RocketMQ 5.0 SDK for C++ の基盤レイヤーは gRPC に基づいています。このトピックでは、ソースコードを使用して Apache RocketMQ SDK for C++ をコンパイルする方法について説明します。
始める前に
Apache RocketMQ 5.0 SDK for C++ が gRPC と同じ互換性マトリックスを持つようにするには、コンパイル環境が以下の要件を満たしている必要があります。
コンパイルには C++ 11 以降が使用されます。対応する GCC バージョンは 4.8.5 以降です。GCC 10.2 以降を使用することをお勧めします。
C++ 17 をサポートするためにマクロを定義できます。対応する GCC バージョンは 7 です。
-std=c++17または-std=gnu++17コマンドを実行して、C++ 17 を有効にできます。
CMake 3.13 以降が必要です。
OpenSSL 1.1.1 が必要です。
ビジネス要件に基づいてバージョンを選択できます。
手順
gflags と gRPC 依存関係をインストールします。
gflags をコンパイルしてインストールします。
wget -O gflags-2.2.2.tar.gz https://github.com/gflags/gflags/archive/v2.2.2.tar.gz tar -xvzf gflags-2.2.2.tar.gz cd gflags-2.2.2/ mkdir build && cd build cmake -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON -DINSTALL_HEADERS=ON -DINSTALL_SHARED_LIBS=ON -DINSTALL_STATIC_LIBS=ON .. make make install cd # gflags を使用するときは、必ずライブラリを読み込んでください。 cat >> ~/.bashrc << EOF export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/local/lib EOF source ~/.bashrcgRPC をコンパイルしてインストールします。 gRPC 1.46.3 を使用することをお勧めします。それ以降の gRPC バージョンは、Apache RocketMQ 5.0 SDK for C++ と互換性がない可能性があります。
export MY_INSTALL_DIR=$HOME/grpc mkdir -p $MY_INSTALL_DIR # ローカルの bin フォルダをパス変数に追加します。例: export PATH="$MY_INSTALL_DIR/bin:$PATH" git clone --recurse-submodules \ -b v1.46.3 --depth 1 --shallow-submodules \ https://github.com/grpc/grpc cd grpc mkdir -p cmake/build pushd cmake/build cmake -DgRPC_INSTALL=ON \ -DgRPC_BUILD_TESTS=OFF \ -DCMAKE_INSTALL_PREFIX=$MY_INSTALL_DIR \ ../.. make -j 32 make install popd
ソースコードをビルドします。Apache RocketMQ SDK for C++ では、CMake と Bazel を使用してソースコードをビルドできます。CMake を使用することをお勧めします。このトピックでは、Apache RocketMQ 5.0.2 SDK for C++ を使用します。
CMake (推奨)
wget -O rocketmq-clients-cpp-5.0.3.tar.gz https://github.com/apache/rocketmq-clients/archive/refs/tags/cpp-5.0.3.tar.gz tar -xvzf rocketmq-clients-cpp-5.0.3.tar.gz cd rocketmq-clients-cpp-5.0.3/cpp mkdir build && cd build cmake .. makeBazel
wget -O rocketmq-clients-cpp-5.0.3.tar.gz https://github.com/apache/rocketmq-clients/archive/refs/tags/cpp-5.0.3.tar.gz tar -xvzf rocketmq-clients-cpp-5.0.3.tar.gz cd rocketmq-clients-cpp-5.0.3/cpp bazel build //...リソース情報を取得します。
SDK コードに含まれるインスタンス、Topic、コンシューマーグループなどのリソースは、事前に ApsaraMQ for RocketMQ コンソールで作成しておく必要があります。詳細については、「手順 2: リソースを作成する」をご参照ください。
サンプルコードのパラメーターを、手順 3 で取得したリソース情報に基づいて変更します。次に、サンプルコードをコンパイルして実行します。