Apache RocketMQ C++ 5.0系列SDK底层基于gRPC,本文为您介绍如何使用源码编译RocketMQ C++ Client。
前提条件
为了确保与gRPC保持相同的兼容性矩阵,编译环境需满足以下要求:
编译最低需要C++ 11环境,对应GCC版本最低为4.8.5,推荐使用GCC 10.2以上的版本。
可选通过宏支持C++ 17环境,对应GCC版本为7,可以通过
-std=c++17
或-std=gnu++17
开启。
需要安装3.13及以上版本。
需要安装 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 需要load lib cat >> ~/.bashrc << EOF export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/local/lib EOF source ~/.bashrc
编译安装gRPC。推荐使用1.46.3版本的gRPC,更高版本的gRPC与SDK存在兼容性问题。
export MY_INSTALL_DIR=$HOME/grpc mkdir -p $MY_INSTALL_DIR # Add the local bin folder to your path variable, for example: 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
源码构建。RocketMQ C++ Client支持CMake和Bazel两种构建方式,推荐使用CMake进行构建。本文以Apache RocketMQ C++ SDK 5.0.2版本为例进行说明。
使用CMake构建(推荐)
wget -O rocketmq-clients-cpp-5.0.2.tar.gz https://github.com/apache/rocketmq-clients/archive/refs/tags/cpp-5.0.2.tar.gz tar -xvzf rocketmq-clients-cpp-5.0.2.tar.gz cd rocketmq-clients-cpp-5.0.2/cpp mkdir build && cd build cmake .. make
使用Bazel构建
wget -O rocketmq-clients-cpp-5.0.2.tar.gz https://github.com/apache/rocketmq-clients/archive/refs/tags/cpp-5.0.2.tar.gz tar -xvzf rocketmq-clients-cpp-5.0.2.tar.gz cd rocketmq-clients-cpp-5.0.2/cpp bazel build //...
获取资源信息。
示例代码中涉及的相关资源信息,包括实例接入点、Topic名称、Group ID等,需要在控制台提前创建。具体操作,请参见创建资源。
该文章对您有帮助吗?