6.1.4 ダイナミックリンクに対応したCOBOLプログラムの作成
COBOL2002のダイナミックリンク機能を使用する場合,次のように実行可能ファイル,および副プログラムを作成してください。
- 〈この項の構成〉
(1) 実行可能ファイル(主プログラム)の作成方法
- (AIX(32)の場合)
ccbl2002 -Compile,NoLink -DynamicLink,Call -Main,System mainprog.cbl xlC -o mainprog mainprog.o -L/opt/HILNGcbl2k/lib -L/opt/HILNGcbl2k/lib/cblxml -lcblxmlrt -lcbl2k -lcbl2kml -lm
- (AIX(64)の場合)
ccbl2002 -Compile,NoLink -DynamicLink,Call -Main,System mainprog.cbl xlC -q64 -o mainprog mainprog.o -L/opt/HILNGcbl2k64/lib -L/opt/HILNGcbl2k64/lib/cblxml -lcblxmlrt64 -lcbl2k64 -lcbl2kml64 -lm
- (Linux(x86)の場合)
ccbl2002 -Compile,NoLink -DynamicLink,Call -UniObjGen -Main,System mainprog.cbl g++ -o mainprog mainprog.o -L/opt/HILNGcbl2k/lib -lcblxmlrt -lcbl2k -lcbl2kml -lm -ldl
- (Linux(x86)の場合(x64向けLinux環境))
ccbl2002 -Compile,NoLink -DynamicLink,Call -UniObjGen -Main,System mainprog.cbl g++ -m32 -o mainprog mainprog.o -L/opt/HILNGcbl2k/lib -lcblxmlrt -lcbl2k -lcbl2kml -lm -ldl
- (Linux(x64)の場合)
ccbl2002 -Compile,NoLink -DynamicLink,Call -UniObjGen -Main,System mainprog.cbl g++ -o mainprog mainprog.o -L/opt/HILNGcbl2k64/lib -lcblxmlrt -lcbl2k -lcbl2kml -lm -ldl
(2) 副プログラムの作成方法
- (AIX(32)の場合)
ccbl2002 -PIC,Std subprog.cbl xlC -o libsubprog.a subprog.o -qmkshrobj -L/opt/HILNGcbl2k/lib -lcbl2k -lcbl2kml -lcblxmlrt -lm
- (AIX(64)の場合)
ccbl2002 -PIC,Std subprog.cbl xlC -q64 -o libsubprog.a subprog.o -qmkshrobj -L/opt/HILNGcbl2k64/lib -lcbl2k64 -lcbl2kml64 -lcblxmlrt64 -lm
- (Linux(x86)の場合)
ccbl2002 -PIC,Std -UniObjGen subprog.cbl g++ -shared -o libsubprog.so subprog.o -L/opt/HILNGcbl2k/lib -Bstatic -lcbl2kml
- (Linux(x86)の場合(x64向けLinux環境))
ccbl2002 -PIC,Std -UniObjGen subprog.cbl g++ -m32 -shared -o libsubprog.so subprog.o -L/opt/HILNGcbl2k/lib -Bstatic -lcbl2kml
- (Linux(x64)の場合)
ccbl2002 -PIC,Std -UniObjGen subprog.cbl g++ -shared -o libsubprog.so subprog.o -L/opt/HILNGcbl2k64/lib -Bstatic -lcbl2kml
- 注意事項
-
-
プログラムの実行前に,COBOL2002の環境変数CBLLPATHまたは環境変数CBLLSLIBに検索する共用ライブラリのディレクトリ名またはライブラリ名を設定しておく必要があります。Linuxでは,環境変数CBLLSLIBにライブラリ名を設定するとき,環境変数LD_LIBRARY_PATHに検索する共用ライブラリのディレクトリ名を設定しておく必要があります。
-