Operating Systems
6 Oracle プリコンパイラおよび Oracle Call Interface の使用
6.3 Pro*C/C++プリコンパイラ
Pro*C/C++プリコンパイラを使用する場合は、事前にオペレーティング・システムの適切なバージ
ョンのコンパイラが正しくインストールされていることを確認してください。
関連項目:
サポートされるコンパイラのバージョンの詳細は、『Oracle Databaseインストレーション・
ガイド』を参照してください。
Pro*C/C++プリコンパイラおよびインタフェース機能の詳細は、『Pro*C/C++プログラマー ズ・ガイド』を参照してください。
この項では、次の項目について説明します。
Pro*C/C++のデモ・プログラム Pro*C/C++のユーザー・プログラム
6.3.1 Pro*C/C++のデモ・プログラム
デモ・プログラムは、Pro*C/C++プリコンパイラの機能を紹介するために用意されています。デ モ・プログラムには、C、C++およびObjectプログラムの3種類があります。デモ・プログラムはす べて、$ORACLE_HOME/precomp/demo/procディレクトリにあります。デフォルトでは、すべ てのプログラムがクライアント共有ライブラリに動的にリンクされます。
デモ・プログラムを実行するには、demobld.sqlスクリプトで作成したデモンストレーション表 がパスワード付きのJONESスキーマに存在する必要があります。
demobld.sqlスクリプトは、読取り/書込みOracleホームの$ORACLE_HOME/sqlplus/demo/デ
ィレクトリと、読取り専用のOracleホームの$(orabasehome)/sqlplus/demo/ディレクトリに あります。
注意: デモンストレーションを作成する前に、JONESアカウントのロックを解除してパ
スワードを設定する必要があります。
次のdemo_proc.mk Makeファイルを使用してデモ・プログラムを作成しま す。demo_proc.mkファイルは、読取り/書込みOracleホーム
の$ORACLE_HOME/precomp/demo/proc/ディレクトリと、読取り専用のOracleホーム
の$(orabasehome/precomp/demo/proc/にあります。たとえば、sample1のデモ・プログラ ムをプリコンパイル、コンパイルおよびリンクするには、次のコマンドを実行します。
$ make -f demo_proc.mk sample1
注意: IBM AIX on POWER Systems (64-Bit)の場合、デモ・プログラムを正しくコンパイ ルするために、次の例のmakeコマンドの-rオプションを指定してください。次に例を 示します。
$ make -r -f demo_proc.mk sample1
Pro*C/C++のCデモ・プログラムをすべて作成するには、次のコマンドを実行します。
$ make -f demo_proc.mk samples
Pro*C/C++のC++デモ・プログラムをすべて作成するには、次のコマンドを実行します。
$ make -f demo_proc.mk cppsamples
Pro*C/C++のObjectデモ・プログラムをすべて作成するには、次のコマンドを実行します。
$ make -f demo_proc.mk object_samples
一部のデモ・プログラムでは、$ORACLE_HOME/precomp/demo/sqlディレクトリ内にあ るSQLスクリプトを実行する必要があります。このスクリプトを実行しないと、実行を要求する
メッセージが表示されます。
デモ・プログラムを作成し、それに対応するSQLスクリプトを実行するには、「makeマクロ引 数RUNSQL=run」をコマンドラインに追加します。たとえば、sample9デモ・プログラムを作成 し、必要な$ORACLE_HOME/precomp/demo/sql/sample9.sqlスクリプトを実行するには、次 のコマンドを実行します。
$ make -f demo_proc.mk sample9 RUNSQL=run
Objectデモ・プログラムのすべてを作成し、必要なSQLスクリプトすべてを実行するには、次のコ
マンドを実行します。
$ make -f demo_proc.mk object_samples RUNSQL=run
6.3.2 Pro*C/C++のユーザー・プログラム
Makeファイル$ORACLE_HOME/precomp/demo/proc/demo_proc.mkを使用して、ユーザー・
プログラムを作成できます。このMakeファイルでは、32ビットおよび64ビットの両方のユーザ ー・プログラムが作成されます。次の表では、Pro*C/C++でユーザー・プログラムを作成するため のMakeファイルを示します。
プラットフォーム Makeファイル
Oracle Solaris、Linux x86-64、IBM: Linux on System z、IBM
AIX on POWER Systems (64-Bit)およびHP-UX demo_proc.mk
関連項目:
ユーザー・プログラムの作成方法は、そのMakeファイルを参照してください。
注意: IBM AIX on POWER Systems (64-Bit)の場合、プログラムを正しくコンパイルする ために、次の例のmakeコマンドの-rオプションを指定してください。
Makeファイルdemo_proc.mkを使用してプログラムを作成する場合は、次のようなコマンドを実
行します。
$ make -f demo_proc.mk target OBJS="objfile1 objfile2 ..."
EXE=exename
この例では、次のようになります。
targetは、使用するMakeファイルのターゲットです。
objfilenは、プログラムをリンクするためのオブジェクト・ファイルです。
exenameは、実行可能プログラムです。
たとえば、Pro*C/C++ソース・ファイルmyprog.pcからプログラムmyprogを作成する場合は、作 成する実行可能ファイルのソースとタイプに応じて、次のいずれかのコマンドを実行します。
Cソースの場合、クライアント共有ライブラリに動的にリンクさせるには、次のコマンドを 実行します。
$ make -f demo_proc.mk build OBJS=myprog.o EXE=myprog
Cソースの場合、クライアント共有ライブラリに静的にリンクさせるには、次のコマンドを 実行します。
$ make -f demo_proc.mk build_static OBJS=myprog.o EXE=myprog
C++ソースの場合、クライアント共有ライブラリに動的にリンクさせるには、次のコマンド を実行します。
$ make -f demo_proc.mk cppbuild OBJS=myprog.o EXE=myprog
C++ソースの場合、クライアント共有ライブラリに静的にリンクさせるには、次のコマンド を実行します。
$ make -f demo_proc.mk cppbuild_static OBJS=myprog.o EXE=myprog