Solution ID: 20855 Type:External 表題: プログラムをビルト環境と実行環境が異なる場合に関する注意事項 製品: Purify/PureCoverage/Quantify バージョン: すべてのバージョン OS: UNIX DEFECT #: N/A PATCH #: N/A 参照事項: Solution ID:5829の日本語訳 作成年月日: 04-Sep-2001 改訂年月日: 質問: Purifyを適用したプログラムをビルド環境とは異なるマシンで実行できますか。 解答: はい。できます。 Puirfyを適用したプログラム(以下、Purify'd プログラムと呼びます。)をビルド 環境と異なる環境で実行する場合、ユーザーは同じバージョンのPurifyを実 行環境でも使用可能にする必要があります。OSのリビジョンも同様に全く同 じである必要があります。更に、実行時にダイナミックリンクされるライブラリも 同じバージョンでなければなりません。 基本的な考えとしましては、実行時の環境をコンパイルシステムを除いてビル ド環境と全く同じにする、ということになります。 基本手順: 1.可能であれば、ビルド環境と全く同じパスでターゲットマシン実行環境)に Purifyをインストールします。またはPurifyが使用できる状態にします。 (もしパスが異なる場合、実行環境で-purify-homeオプションの設定を行う 必要があります。手順5で設定します。) 2. プログラムを下記の方法でビルドします。 a. 下記のPurifyランタイムオプションを使用します。 -always-use-cache-dir -cache-dir= : Purify'dファイルを保存するためのキャッシュディレクト リを指定します。 このディレクトリは実行環境にも存在しなければなりませ ん。 b. 可能であれば、スタティックライブラリを使用してプログラムをビルドします。 スタティックにリンクすることによってビルド環境から実行環境にコピーする ファイルを減らすことができます。 例) SunOS/Solaris: % purify cc foo.c -Bstatic HP-UX : % purify cc foo.c -Wl,-a,archive 3. ターゲットマシンの同じディレクトリにPurify'd実行ファイルをコピーします。環 境によっては、-program-nameオプションを使用してフルパスでプログラムの 指定を行います。 4. ターゲットマシンの同じディレクトリにキャッシュディレクトリからPurify'd共有ラ イブラリをコピーします。プログラムに必要な共有ライブラリのリストはSunOS、 またはSolaris上ではlddコマンド、HP-UX上ではchatrコマンドで取得できます。 両方のマシンからアクセスできる共有ファイルシステム(NFSマウントされてい るなど)上にPurify'dライブラリがキャッシュされている場合、コピーする必要は ありません。 5. もし、Purifyがビルド環境と同じディレクトリにインストールされていない場合、 下記のPurifyランタイムオプションを設定します。 -purify-home= : 実行環境でPurifyがインストールされて いるディレクトリ 6. もし、プログラムがスタティック(静的)にリンクされている場合、共有ライブラリ を使用していない場合、ターゲットマシンにキャッシュディレクトリのファイルを コピーする必要はありません。 7. もし-g(デバッグ)オプションをつけてプログラムがコンパイルされている場合、 また、Purifyアウトプットでソースの行番号を参照できるようにする場合、 下記 の設定のうちのどれかを行う必要があります。 a. ターゲットマシンにソースコードのあるディレクトリをマウントします。 b. ターゲットマシンの実行ディレクトリにソースコードをコピーします。 c. ビルド環境と全く同じディレクトリ構成でターゲットマシンにソースコードをコ ピーします。 d. ターゲットマシンの任意のディレクトリにソースコードをコピーし、Purifyの -user-path ランタイムオプションを使用してそのディレクトリを指定します。 "-user-path=" ランタイムオプションを設定するときの注意: 実行環境にオプションを設定する場合、PURIFYOPTIONS環境変数を使用し ます。スペースによってこのオプションは区別されます。 [例] Cシェル(csh)の場合: setenv PURIFYOPTIONS "-cache-dir=/my/cache -always-use-cache-dir" Kornシェル(ksh)の場合: export PURIFYOPTIONS="-cache-dir=/my/cache -always-use-cache-dir" 8. プログラムを実行する前に、実行環境でLD_LIBRARY_PATH環境変数を適切 に設定し、lddコマンドを使用して、すべての従属ライブラリがこのマシンに利用 できるかどうかをチェックします。依存状態のパスが静的に埋め込まれていま すので、実行環境上で全く同じパス名を作成するか、またはファイルが存在す るディレクトリにシンボリックリンクを作成する必要があります。 ご不明な点等ありましたら、ラショナルカスタマサービスへお問い 合わせ下さい。