Cisco SCMS SM C/C++ API プログラマ ガイド Release 3.1
使用する前に
使用する前に
発行日;2012/02/02 | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 591KB) | フィードバック

目次

使用する前に

プラットフォームとコンパイラ

インストール パッケージの内容

SCMS SM C/C++ API のインストール方法

UNIX プラットフォーム、および Linux プラットフォームへのディストリビューションのインストール

Windows へのディストリビューションのインストール

SCMS SM C/C++ API のコンパイルおよび実行方法

Windows におけるプログラムのコンパイルと実行

Solaris におけるプログラムのコンパイルと実行

Red Hat Linux におけるプログラムのコンパイルと実行

使用する前に

この章では、使用可能なプラットフォーム、インストール、コンパイル、および起動方法の面から SM C/C++ API について説明します。

「プラットフォームとコンパイラ」

「インストール パッケージの内容」

「SCMS SM C/C++ API のインストール方法」

「SCMS SM C/C++ API のコンパイルおよび実行方法」

プラットフォームとコンパイラ

SCMS SM C/C++ API は、Windows、Solaris、Linux のプラットフォーム上で開発とテストが行われました。Windows では Microsoft Visual C++ 6 コンパイラ、Solaris では GCC 2.95.3 コンパイラ、Linux では GCC 3.2.3 コンパイラでコンパイルされています。

インストール パッケージの内容

ここでは便宜上、インストール ディレクトリ sm-c-api-vvv.bb <installdir> と表します。 vvv bb はそれぞれ SCMS SM C/C++ API のバージョン番号とビルド番号を表します。

<installdir>/winnt フォルダには、 smapi.dll ファイルが入っています。これは、Windows API 実行可能ファイルです。さらに、Windows API の実行に必要なその他の DLL および LIB ファイルもこのフォルダに入っています。

<installdir>/solaris フォルダには、 libsmapi.so ファイルが入っています。これは、Solaris API 実行可能ファイルです。

<installdir>/linux フォルダには、 libsmapi.so ファイルが入っています。これは、Linux API 実行可能ファイルです。

<installdir>/include フォルダには、API C/C++ ヘッダー ファイルが入っています。

<installdir>/include/system フォルダには、C++ API 内部ヘッダー ファイルが入っています。

 

表1-1 インストール ディレクトリのレイアウト

フォルダ
サブフォルダ(該当する場合)
ファイル名

<installdir>

 

README.csmapi

 

include

BasicTypes.h

 

 

Common.h

 

 

GeneralDefs.h

 

 

Logger.h

 

 

PrintLogger.h

 

 

SmApiBlocking.h

 

 

SmApiBlocking_c.h

 

 

SmApiNonBlocking.h

 

 

SmApiNonBlocking_c.h

 

include/system

OperationHandleInterface.h

 

 

OperationResultInterface.h

 

linux

libsmapi.so

 

solaris

libsmapi.so

 

winnt

asn1ber.dll

 

 

asn1ber.lib

 

 

asn1rt.dll

 

 

asn1rt.lib

 

 

SmApi.dll

 

 

SmApi.lib

SCMS SM C/C++ API のインストール方法

SCMS SM C/C++ API ディストリビューションは SCMS SM-LEG 配布ファイルの一部であり、sm_api ディレクトリに入っています。SCMS SM C/C++ API は UNIX tar ファイルに圧縮されています。SCMS SM C/C++ API は UNIX tar ユーティリティまたはほとんどの Windows 圧縮ユーティリティで解凍できます。

「UNIX プラットフォーム、および Linux プラットフォームへのディストリビューションのインストール」

「Windows へのディストリビューションのインストール」

UNIX プラットフォーム、および Linux プラットフォームへのディストリビューションのインストール

1. SCMS SM-LEG 配布ファイルを解凍します。

2. C/C++ SM API の配布ファイル sm-c-api-dist.tar の場所を確認します。

3. C/C++ API パッケージ tar を解凍します。

#>tar -xvf sm-c-api-dist.tar

Windows へのディストリビューションのインストール

1. zip 解凍ユーティリティ(WinZip など)を使用してパッケージを解凍します。

2. インストレーション ウィザードで表示されるプロンプトに従って手順を実施します。

SCMS SM C/C++ API のコンパイルおよび実行方法

API は SM 上の PRPC サーバに接続します。API を機能させるためには、次の条件を満たす必要があります。

SM が起動され稼働中であり、API のホスト マシンから到達できること。

SM 上の PRPC サーバが起動されていること。

PRPC サーバはシスコが開発した独自の RPC プロトコルです。詳細については、『 Cisco SCMS Subscriber Manager User Guide 』を参照してください。

次の各セクションでは、それぞれサポートされるソフトウェア プラットフォームで API をコンパイルする方法、および実行する方法について説明します。

「Windows におけるプログラムのコンパイルと実行」

「Solaris におけるプログラムのコンパイルと実行」

「Red Hat Linux におけるプログラムのコンパイルと実行」

Windows におけるプログラムのコンパイルと実行

手順の概要

1. smapi.dll およびその他の DLL ファイルがパスまたは実行可能ファイルのディレクトリにあることを確認します。

2. include フォルダがコンパイルのインクルード パスにあることを確認します。

3. smapi.lib ファイルがリンケージ パスにあることを確認します。

4. 該当する API ヘッダー ファイルをソース コードに含めて、コードをコンパイルします。

手順の詳細


ステップ 1 smapi.dll およびその他の DLL ファイルがパスまたは実行可能ファイルのディレクトリにあることを確認します。

ステップ 2 include フォルダがコンパイルのインクルード パスにあることを確認します。

Microsoft Visual C++ 6 を使用する場合の例:

プロジェクト設定値を入力し、 C++ タブをクリックしてから、 Preprocessor カテゴリを選択します。インクルード ディレクトリのパスを Additional Include directories 行に追加します。

ステップ 3 smapi.lib ファイルがリンケージ パスにあることを確認します。

Microsoft Visual C++ 6 を使用する場合の例:

プロジェクトの設定値を入力し、 Link タブをクリックします。 smapi.lib Object\Library modules 行に追加します。

ステップ 4 該当する API ヘッダー ファイルをソース コードに含めて、コードをコンパイルします。


 

Solaris におけるプログラムのコンパイルと実行

手順の概要

1. libsmapi.so が LD_LIBRARY_PATH にあることを確認します。

2. include フォルダがコンパイルのインクルード パスにあることを確認します。

3. libsmapi.so ファイルをリンケージ行に入れるか、またはこれを動的にロードします。

手順の詳細


ステップ 1 libsmapi.so が LD_LIBRARY_PATH にあることを確認します。

たとえば、 Bash シェル タイプを使用している場合は、次のコマンドラインを使用します。

bash-2.03$ export set LD_LIBRARY_PATH=$LD
LIBRARY_PATH:the-libsmapi.so-folder
 

ステップ 2 include フォルダがコンパイルのインクルード パスにあることを確認します。

たとえば、 GCC を使用している場合は、次のように -I オプション フラグの後ろにインクルード フォルダを追加します。

>gcc -c -o TestSmApi.o -Ism-api-header-file-folder
-Ism-api-header-file-folder/system/ TestSmApi.cpp
 

ステップ 3 libsmapi.so ファイルをリンケージ行に入れるか、またはこれを動的にロードします。

次のように、オブジェクト ファイルを pthread と socket ライブラリにリンクします。

>gcc -o testSmApi TestSmApi.o -lsmapi -lpthread -lsocket
 


 

Red Hat Linux におけるプログラムのコンパイルと実行

手順の概要

1. libsmapi.so が LD_LIBRARY_PATH にあることを確認します。

2. include フォルダがコンパイルのインクルード パスにあることを確認します。

3. libsmapi.so ファイルをリンケージ行に入れるか、またはこれを動的にロードします。

手順の詳細


ステップ 1 libsmapi.so が LD_LIBRARY_PATH にあることを確認します。

たとえば、 Bash シェル タイプを使用している場合は、次のコマンドラインでプロンプトに応じてパスワードを入力します。

bash-2.03$ export set LD_LIBRARY_PATH=$LD
LIBRARY_PATH:the-libsmapi.so-folder
 

ステップ 2 include フォルダがコンパイルのインクルード パスにあることを確認します。

たとえば、 GCC を使用している場合は、次のように -I オプション フラグの後ろにインクルード フォルダを追加します。

>gcc -c -o-TestSmApi.o Ism-api-header-file-folder
-Ism-api-headerfile-folder/system/ TestSmApi.cpp
 

ステップ 3 libsmapi.so ファイルをリンケージ行に入れるか、またはこれを動的にロードします。

-L オプション フラグを使用して libsmapi.so の場所を指定します。次のように、オブジェクト ファイルを pthread と stdc++ ライブラリにリンクします。

>gcc -o-testSmApi. TestSmApi.o -lsmapi -lpthread -lstdc++ -L<libpath>