Linux または Windows 向けの開発環境を構築し、ApsaraMQ for RocketMQ C++ SDK V1.x.x を使用してメッセージの送信および受信を行えるようにします。
前提条件
開始する前に、以下の条件を満たしていることを確認してください。
ApsaraMQ for RocketMQ が有効化された Alibaba Cloud アカウント
ApsaraMQ for RocketMQ コンソールで作成済みのトピックおよびコンシューマーグループ
アプリケーションをデプロイするための Elastic Compute Service (ECS) インスタンス
本ガイドでは、C++ SDK V1.x.x のみを対象としています。メッセージタグはアプリケーション側で定義されるものであり、コンソールでの設定は不要です。
SDK のダウンロード
C++ SDK は Windows および Linux をサポートしており、両プラットフォームで同一のインターフェイスを提供します。Linux の場合、CentOS 6(RHEL 6)および CentOS 7(RHEL 7)がサポートされています。
SDK パッケージは、[リリースノート] ページからダウンロードできます。
パッケージの内容
パッケージを展開すると、ディレクトリには以下が含まれます。
| ディレクトリまたはファイル | 説明 |
|---|---|
demo/ | 事前構成済みの Visual Studio プロジェクト(Windows 専用) |
example/ | 通常メッセージ、ワンウェイメッセージ、および順序付きメッセージの送信および消費を行うサンプルコード。Linux 向けには Makefile |
include/ | アプリケーションで使用するヘッダーファイル |
lib/ | 静的ライブラリおよび共有ライブラリ(下記参照) |
SDK_GUIDE.pdf | SDK 環境セットアップガイドおよびよくある質問(FAQ) |
changelog | 各リリースにおけるバグ修正および新機能 |
ライブラリファイル
Linux
| パス | ファイル | タイプ |
|---|---|---|
lib/lib-boost-static/ | libonsclient4cpp.a | Boost を静的にリンクした静的ライブラリ |
lib/lib-boost-share/ | libonsclient4cpp.so | 共有ライブラリ(Boost の共有ライブラリが必要) |
Windows
| パス | ファイル | 説明 |
|---|---|---|
lib/64/ | SDK DLL | 64 ビット動的ライブラリ |
lib/ | vc_redist.x64 | Visual C++ 2015 ランタイム。Visual Studio 2015 がインストールされていない場合は、このランタイムをインストールしてください。 |
Linux 環境のセットアップ
2016 年 12 月 2 日以降、Linux 向け C++ SDK は CPU 使用率の低減およびスループットの向上のため、Boost 1.62.0 に依存しています。
SDK では、以下の Boost ライブラリが必要です。
| ライブラリ | 必須 |
|---|---|
boost_system | はい |
boost_thread | はい |
boost_chrono | はい |
boost_filesystem | はい |
プロジェクトの要件に応じて、以下のいずれかのリンク戦略を選択してください。
オプション 1:静的リンク(推奨)
プロジェクトが既に Boost に依存していない場合にこのオプションを使用します。lib/lib-boost-static/libonsclient4cpp.a に含まれる静的ライブラリは、上記 4 つの Boost ライブラリをすべてバンドルしているため、別途 Boost をインストールする必要はありません。
付属の Makefile を使用したビルド
cd aliyun-mq-linux-cpp-sdk # 展開後の SDK のルートディレクトリ
cd example # トピックおよびアクセスキーを設定するよう、サンプルファイルを編集
make static=1完全な静的ビルドには、libstdc++.a、libpthread.a および関連する静的ライブラリが必要です。デフォルトでは、ほとんどのディストリビューションで libstdc++ には静的ライブラリが同梱されていません。必要な静的ライブラリは、yum または apt-get を使用してインストールしてください。
完全な静的ビルドでは、以下の警告が出力される場合があります。
warning: Using 'gethostbyaddr' in statically linked applications requires at runtime
the shared libraries from the glibc version used for linking推奨アプローチ:SDK のみを静的リンク
この警告を回避するには、libonsclient4cpp のみを静的リンクし、システムライブラリは動的リンクのままにします。
g++ -ggdb -Wall -O3 -I../include \
../example/ProducerExampleForEx.cpp \
-Wl,-static -lonsclient4cpp -L../lib/lib-boost-static/ \
-Wl,-Bdynamic -lpthread -ldl -lrt \
-o ../example/ProducerExampleForExGCC 5.x 以降でコンパイルする場合は、GCC 5 で導入された デュアル ABI に対応するため、-D_GLIBCXX_USE_CXX11_ABI=0 フラグを追加してください。
オプション 2:動的リンク
プロジェクトが既に Boost に依存している場合、または共有ライブラリを好む場合にこのオプションを使用します。この方法では、ローカルに Boost 1.62.0 をインストールする必要があります。
ステップ 1:Boost 1.62.0 のインストール
Boost 1.62.0 をダウンロードします。
アーカイブを展開します。
tar --bzip2 -xf /path/to/boost_1_62_0.tar.bz2Boost をビルドおよびインストールします。
cd path/to/boost_1_62_0 ./bootstrap.sh ./b2 link=shared runtime-link=shared ./b2 installBoost 共有ライブラリがリンカーの検索パスに存在することを確認します。出力が表示されない場合は、Boost ライブラリのパスを
/etc/ld.so.confに追加し、ldconfigを実行してください。ldconfig -v | grep libboost
ステップ 2:アプリケーションのビルド
cd aliyun-mq-linux-cpp-sdk # 展開後の SDK のルートディレクトリ
cd example # トピックおよびアクセスキーを設定するよう、サンプルファイルを編集
g++ -Wall -Wno-deprecated \
-L ../lib/lib-boost-share/ -I ../include/ \
ProducerExampleForEx.cpp \
-lonsclient4cpp -lboost_system -lboost_thread -lboost_chrono -lboost_filesystem \
-lpthread
export LD_LIBRARY_PATH="../lib/lib-boost-share/"
./a.outWindows 環境のセットアップ
Visual Studio 2015
Visual Studio 2015 で新しいプロジェクトを作成します。
構成マネージャー を開き、以下の設定を行います。
アクティブなソリューション構成 を リリース に設定
アクティブなソリューションプラットフォーム を x64 に設定
出力ディレクトリを構成します。
プロパティ > 構成プロパティ > 全般 に移動します。
出力ディレクトリ を任意のディレクトリ(例:
C:\myproject\output)に設定します。SDK の
lib\64\ディレクトリ内のすべてのファイルを出力ディレクトリにコピーします。
インクルードパスを構成します。
プロパティ > 構成プロパティ > C/C++ > 全般 に移動します。
追加のインクルードディレクトリ にディレクトリ(例:
C:\myproject\include)を追加します。SDK の
include\ヘッダーファイルをこのディレクトリにコピーします。
ライブラリパスを構成します。
プロパティ > 構成プロパティ > リンカー > 全般 に移動します。
ステップ 3 で指定した出力ディレクトリを、追加のライブラリディレクトリ に追加します。
SDK のライブラリ依存関係を追加します。
プロパティ > 構成プロパティ > リンカー > 入力 に移動します。
ONSClient4CPP.lib を 追加の依存関係 に追加します。
プリプロセッサマクロを追加します。
プロパティ > 構成プロパティ > C/C++ > プリプロセッサ に移動します。
WIN32 を プリプロセッサ定義 に追加します。
ビルド をクリックしてコンパイルします。実行可能ファイルを実行する前に、SDK の DLL を出力ディレクトリまたはシステム PATH 内のディレクトリにコピーしてください。
その他の Visual Studio バージョン
上記の Visual Studio 2015 の手順に従ってプロジェクトを構成します。
ターゲットマシンに Visual C++ 2015 ランタイム(
vc_redist.x64)をインストールします。
手動構成を省略するには、SDK の demo/ ディレクトリに含まれる事前構成済みのデモプロジェクトを Visual Studio 2015 で開きます。サンプルコード内のトピックおよびアクセスキーの値を更新し、ビルドおよび実行してください。