opencobol コンパイラを使用して ubuntu Linux で cobol-db2 プログラムを実行したかったのですが、opencobol を使用して Linux でプログラムを実行するプロセスを説明してください。
1 に答える
これが Stackoverflow の年齢制限ルールに違反している場合は、ご容赦ください。
http://opencobol.add1tocobol.com/#how-does-the-opencobol-compiler-workを参照してください。
多分http://opencobol.add1tocobol.com/#does-opencobol-support-any-sql-databases
データベース ライブラリへのリンクのサンプルについては、
編集:単純なリンクの代わりに、mbinetteが示唆するように
つまり、OpenCOBOL はマルチフェーズ コンパイラです。
- ソース テキストを前処理します。cobc -Eは後処理されたテキストを stdout に生成して停止します
- C に変換します。 cobc -Cで .c ソース コード ファイルを生成して停止します
- ネイティブ C コンパイラを使用してアセンブラに変換します。cobc -S .s アセンブラ ソースを生成して停止する
- オブジェクトを生成します。cobc -cは .o オブジェクト ファイルを生成して停止します
- 建てる。cobc -x、またはcobc -m、またはcobc -b (実行可能ファイル、モジュール (.so または DLL) の場合)、および最後に、複数のコマンド ライン入力から動的共有オブジェクトを作成するためのビルド。
OpenCOBOL は共有ライブラリに優れており、C アプリケーション バイナリ インターフェイスを使用することで、COBOL CALL動詞を使用して、すべてではないにしてもほとんどの .so (または DLL) シンボルを動的にロードできます。
CALL "DB2-CONNECT"
USING
BY REFERENCE "database name"
BY CONTENT credentials
BY VALUE control-bits
RETURNING pointer-to-handle
ON EXCEPTION
DISPLAY "Can't find DB2-CONNECT, use -ldb2 with cobc" END-DISPLAY
END-CALL
DB2 ライブラリーやドキュメントが手元にないため、上記の呼び出しフレームを作成しました。
DB2 サービスを使用するプログラムをコンパイルするには、次のようなものを使用します。
cobc -x myprogram.cob -ldb2 -L/path/to/DB2lib
または、おそらくより大きなアプリケーションでは、次のようなものです
cobc -b myprogram.cob hisprogram.cob herprogram.cob
export COB_LIBRARY_PATH=/path/to/development/libraries
export COB_PRE_LOAD=db2-dev:other-dev-libs
cobcrun myprogram
詳細については、FAQ を参照してください。うまくいけば、上記のリンクに永遠に隠されます。
1.1 の時点で OpenCOBOL が EXEC 構文をサポートしていないことを指摘します。DB2 EXEC プリプロセッサーは、OpenCOBOL に適した COBOL を生成する場合と生成しない場合があります。Oracle Pro*COBOL EXEC END-EXEC プリコンパイラは、Oracle SQL にリンクするために OpenCOBOL でコンパイルする COBOL ソース コードを生成すると言われています。