2.2.3 ソースファイルをコンパイルする
JP1イベントを発行および取得するには,コーディングしたソースファイルをコンパイル・リンクする必要があります。
- [コンパイル時に必要なファイル]
-
-
ヘッダーファイル(JP1/Baseインストール時にインストールされます)
-
CまたはC++で作成したソースファイル(ユーザーが作成するものです)
ヘッダーファイルの格納先は次のとおりです。
Windows:インストール先フォルダ\include\JevApi.h
UNIX:/opt/jp1base/include/JevApi.h
-
- [リンク時に必要なファイル]
-
必要となるライブラリーは,各OS,コンパイラーによって異なるため,注意が必要です。各OSで必要なライブラリーを次の表に示します。
なお,ライブラリーには,2038年非対応と2038年対応の2種類があります。2038年以降も使用する場合は,2038年対応のライブラリーをリンクするようにしてください。
表2‒4 各OSで必要なライブラリー(2038年非対応) OS
スレッド
必要なライブラリー
Windows
32ビット,マルチスレッド
インストール先フォルダ\lib\libJevApiA.lib
64ビット,マルチスレッド
インストール先フォルダ\lib\libJevApiAx64.lib
-
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
表2‒5 各OSで必要なライブラリー(2038年対応) OS
スレッド
必要なライブラリー
Windows
32ビット,マルチスレッド
インストール先フォルダ\lib\libJevApiAT.lib
64ビット,マルチスレッド
インストール先フォルダ\lib\libJevApiATx64.lib
-
AIX
-
Linux
32ビット,シングルスレッド
/opt/jp1base/lib/libJevApiATmt.a
32ビット,マルチスレッド
/opt/jp1base/lib/libJevApiATst.a
64ビット,シングルスレッド
/opt/jp1base/lib/libJevApiATmt.a
64ビット,マルチスレッド
/opt/jp1base/lib/libJevApiATst64.a
-
各OSでのコンパイル,リンク時に指定するオプションを次の表に示します。
なお,リンクオプションには,2038年非対応と2038年対応の2種類があります。2038年以降も使用する場合は,2038年対応のリンクオプションを使用するようにしてください。
- 注意事項
-
WindowsのVisual Studio統合開発環境(GUI)上でコンパイルやリンクをする場合,次の表に示すコンパイルオプションやリンクオプションから,該当するオプションを使用して環境を設定してください。
注※ HP-UX (IPF)の-Aaオプションは,Cコンパイラー(cc)でコンパイルする場合だけ必要です。-Aeオプションに置き換えられますが,-Acオプションは指定しないでください。なお,C++コンパイラー(aCC)を使用する場合は省略できます。
- 注意事項
-
-
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のパッチのバージョンがビルドする環境よりも下位のバージョンである場合,シンボル解決エラーになり正常に起動できないなど,プログラムが正常に実行できない場合があります。
-
JevGetRegistTime()関数,JevGetArrivedTime()関数をtime_t型の戻り値を返す関数として使用する場合,コンパイルオプションに「D_JEVTIME_T」を指定してください。
-