Hitachi

JP1 Version 12 JP1/Base 関数リファレンス


2.2.3 ソースファイルをコンパイルする

JP1イベントを発行および取得するには,コーディングしたソースファイルをコンパイル・リンクする必要があります。

[コンパイル時に必要なファイル]
  • ヘッダーファイル(JP1/Baseインストール時にインストールされます)

  • CまたはC++で作成したソースファイル(ユーザーが作成するものです)

ヘッダーファイルの格納先は次のとおりです。

Windows:インストール先フォルダ\include\JevApi.h

UNIX:/opt/jp1base/include/JevApi.h

[リンク時に必要なファイル]
  • ライブラリー(JP1/Baseインストール時にインストールされます)

必要となるライブラリーは,各OS,コンパイラーによって異なるため,注意が必要です。各OSで必要なライブラリーを次の表に示します。

表2‒4 各OSで必要なライブラリー

OS

スレッド

必要なライブラリー

Windows

32ビット,マルチスレッド

インストール先フォルダ\lib\libJevApiA.lib

64ビット,マルチスレッド

インストール先フォルダ\lib\libJevApiAx64.lib

HP-UX (IPF)

32ビット,シングルスレッド

/opt/jp1base/lib/libJevApiAst32.a

32ビット,マルチスレッド

/opt/jp1base/lib/libJevApiAmt32.a

64ビット,シングルスレッド

/opt/jp1base/lib/libJevApiAst64.a

64ビット,マルチスレッド

/opt/jp1base/lib/libJevApiAmt64.a

Solaris (SPARC)

32ビット,シングルスレッド

/opt/jp1base/lib/libJevApiAst.a

32ビット,マルチスレッド

/opt/jp1base/lib/libJevApiAmt.a

  • AIX

  • Linux

32ビット,シングルスレッド

/opt/jp1base/lib/libJevApiAst.a

32ビット,マルチスレッド

/opt/jp1base/lib/libJevApiAmt.a

64ビット,シングルスレッド

/opt/jp1base/lib/libJevApiAst64.a

64ビット,マルチスレッド

/opt/jp1base/lib/libJevApiAmt64.a

各OSでのコンパイル,リンク時に指定するオプションを次の表に示します。

注意事項

WindowsのVisual Studio統合開発環境(GUI)上でコンパイルやリンクをする場合,次の表に示すコンパイルオプションやリンクオプションから,該当するオプションを使用して環境を設定してください。

表2‒5 コンパイルオプション

OS

スレッド

コンパイルオプション

Windows

32ビット,マルチスレッド

/MD /I "インストール先フォルダ\include"

(32ビットのVC++プロジェクト構成で実施)

64ビット,マルチスレッド

/MD /I "インストール先フォルダ\include"

(64ビットのVC++プロジェクト構成で実施)

HP-UX (IPF)

32ビット,シングルスレッド

-Aa -I/opt/jp1base/include

32ビット,マルチスレッド

-Aa -mt -I/opt/jp1base/include

64ビット,シングルスレッド

+DD64 -Aa -I/opt/jp1base/include

64ビット,マルチスレッド

+DD64 -Aa -mt -I/opt/jp1base/include

Solaris (SPARC)

32ビット,シングルスレッド

-I/opt/jp1base/include

32ビット,マルチスレッド

-mt -D_THREAD_SAFE -I/opt/jp1base/include

AIX

32ビット,シングルスレッド

-I/opt/jp1base/include

32ビット,マルチスレッド

-D_REENTRANT -D_THREAD_SAFE -I/opt/jp1base/include

64ビット,シングルスレッド

-q64 -I/opt/jp1base/include

64ビット,マルチスレッド

-q64 -D_REENTRANT -D_THREAD_SAFE -I/opt/jp1base/include

Linux

32ビット,シングルスレッド

-I/opt/jp1base/include

32ビット,マルチスレッド

-D_REENTRANT -D_THREAD_SAFE -I/opt/jp1base/include

64ビット,シングルスレッド

-m64 -I/opt/jp1base/include

64ビット,マルチスレッド

-m64 -D_REENTRANT -D_THREAD_SAFE -I/opt/jp1base/include

注※ HP-UX (IPF)の-Aaオプションは,Cコンパイラー(cc)でコンパイルする場合だけ必要です。-Aeオプションに置き換えられますが,-Acオプションは指定しないでください。なお,C++コンパイラー(aCC)を使用する場合は省略できます。

表2‒6 リンクオプション

OS

スレッド

リンクオプション

Windows

32ビット,マルチスレッド

"インストール先フォルダ\lib\libJevApiA.lib"

(32ビットのVC++プロジェクト構成で実施)

64ビット,マルチスレッド

"インストール先フォルダ\lib\libJevApiAx64.lib"

(64ビットのVC++プロジェクト構成で実施)

HP-UX (IPF)

32ビット,シングルスレッド

/opt/jp1base/lib/libJevApiAst32.a

32ビット,マルチスレッド

-mt /opt/jp1base/lib/libJevApiAmt32.a

64ビット,シングルスレッド

+DD64 /opt/jp1base/lib/libJevApiAst64.a

64ビット,マルチスレッド

+DD64 -mt /opt/jp1base/lib/libJevApiAmt64.a

Solaris (SPARC)

32ビット,シングルスレッド

/opt/jp1base/lib/libJevApiAst.a -ldl

32ビット,マルチスレッド

/opt/jp1base/lib/libJevApiAmt.a -ldl -lpthread

AIX

32ビット,シングルスレッド

/opt/jp1base/lib/libJevApiAst.a -ldl

32ビット,マルチスレッド

/opt/jp1base/lib/libJevApiAmt.a -ldl -lpthread

64ビット,シングルスレッド

/opt/jp1base/lib/libJevApiAst64.a -q64 -ldl

64ビット,マルチスレッド

/opt/jp1base/lib/libJevApiAmt64.a -q64 -ldl -lpthread

Linux

32ビット,シングルスレッド

/opt/jp1base/lib/libJevApiAst.a -ldl

32ビット,マルチスレッド

/opt/jp1base/lib/libJevApiAmt.a -ldl -lpthread

64ビット,シングルスレッド

/opt/jp1base/lib/libJevApiAst64.a -m64 -ldl

64ビット,マルチスレッド

/opt/jp1base/lib/libJevApiAmt64.a -m64 -ldl -lpthread

注意事項
  • JP1/Baseが提供するライブラリーは,スタティックライブラリー(UNIXの場合はアーカイブ)です。DLL用のインポートライブラリーや共有ライブラリーではありません。

  • JP1/Baseが提供するライブラリーは,JP1/Baseに同梱されているDLL(UNIXの場合は共有ライブラリー)をダイナミックロードします。このため,JP1/Baseがインストールされていない環境でも,作成されたプログラムは動作しますが,その場合,関数がJEV_NO_LIBRARYで失敗します。

  • Windows用のJP1/Base提供ライブラリーからダイナミックロードされるDLLは,Side by sideアセンブリーでパッケージ化されたライブラリーとの依存関係がないため,マニフェストは提供していません。

  • UNIXでJP1/Base提供ライブラリーをリンクするときは,-lオプションでリンクしないでください。

  • UNIXでリンクするときは,ldではなく,コンパイラーと同じリンケージエディター(ccなど)を使用することを推奨します。ldでリンクする場合は,コンパイラーが自動的にldに引き渡すオプションと同じものを同じ順序で指定してください。

  • x64版のLinux環境でコンパイルする場合,コンパイルオプションおよびリンクオプションに「-m32」を追加してください。

  • プログラムを実行する環境とビルド(コンパイルおよびリンク)する環境が異なる場合,実行する環境にはビルドする環境よりも上位のバージョンまたは同じバージョンのOSやOSのパッチを適用してください。実行する環境のOSやOSのパッチのバージョンがビルドする環境よりも下位のバージョンである場合,シンボル解決エラーになり正常に起動できないなど,プログラムが正常に実行できない場合があります。