JP1/Base 機能拡張

[目次][索引][前へ][次へ]


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

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

[コンパイル時に必要なファイル]
  • ヘッダーファイル(JP1/Baseインストール時にインストールされます)
  • CまたはC++で作成したソースファイル(ユーザーが作成するものです)
ヘッダーファイルの格納先は次のとおりです。
Windows:Baseパス\include\JevApi.h
UNIX:/opt/jp1base/include/JevApi.h

[リンク時に必要なファイル]
  • ライブラリー(JP1/Baseインストール時にインストールされます)
必要となるライブラリーは,各OS,コンパイラーによって異なるため,注意が必要です。各OSで必要なライブラリーを次の表に示します。

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

OS 必要なライブラリー
Windows XP Professional
Windows Vista
Windows Server 2003
Windows Server 2008
Baseパス\lib\libJevApiA.lib(32bitマルチスレッド用)
Windows Server 2003(IPF)
Windows Server 2008(IPF)
Baseパス\lib\libJevApiA.lib(64bitマルチスレッド用)
HP-UX (PA-RISC)
Solaris
AIX
Linux (x86)
/opt/jp1base/lib/libJevApiAst.a(32bitシングルスレッド用)
/opt/jp1base/lib/libJevApiAmt.a(32bitマルチスレッド用)
HP-UX (IPF) /opt/jp1base/lib/libJevApiAst32.a(32bitシングルスレッド用)
/opt/jp1base/lib/libJevApiAmt32.a(32bitマルチスレッド用)
/opt/jp1base/lib/libJevApiAst64.a(64bitシングルスレッド用)
/opt/jp1base/lib/libJevApiAmt64.a(64bitマルチスレッド用)
Linux (IPF) /opt/jp1base/lib/libJevApiAst.a(64bitシングルスレッド用)
/opt/jp1base/lib/libJevApiAmt.a(64bitマルチスレッド用)

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

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

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

OS コンパイルオプション
Windows XP Professional
Windows Vista
Windows Server 2003
Windows Server 2008
(32bitマルチスレッド)
/MD /I "Baseパス\include"
Windows Server 2003(IPF)
Windows Server 2008(IPF)
(64bitマルチスレッド)
/MD /G2 /I "Baseパス\include"
HP-UX (PA-RISC)
(32bitシングルスレッド)
-Aa -I/opt/jp1base/include
HP-UX (PA-RISC)
(32bitマルチスレッド)
-Aa -D_REENTRANT -D_THREAD_SAFE -I/opt/jp1base/include
HP-UX (IPF)
(32bitシングルスレッド)
-Aa -I/opt/jp1base/include
HP-UX (IPF)
(32bitマルチスレッド)
-Aa -mt -I/opt/jp1base/include
HP-UX (IPF)
(64bitシングルスレッド)
+DD64 -Aa -I/opt/jp1base/include
HP-UX (IPF)
(64bitマルチスレッド)
+DD64 -Aa -mt -I/opt/jp1base/include
Solaris
(32bitシングルスレッド)
-I/opt/jp1base/include
Solaris
(32bitマルチスレッド)
-mt -D_THREAD_SAFE -I/opt/jp1base/include
AIX
(32bitシングルスレッド)
-I/opt/jp1base/include
AIX
(32bitマルチスレッド)
-D_REENTRANT -D_THREAD_SAFE -I/opt/jp1base/include
Linux (x86)
(32bitシングルスレッド)
-I/opt/jp1base/include
Linux (x86)
(32bitマルチスレッド)
-D_REENTRANT -D_THREAD_SAFE -I/opt/jp1base/include
Linux (IPF)
(64bitシングルスレッド)
-I/opt/jp1base/include
Linux (IPF)
(64bitマルチスレッド)
-D_REENTRANT -D_THREAD_SAFE -I/opt/jp1base/include

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

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

    OS リンクオプション
    Windows XP Professional
    Windows Vista
    Windows Server 2003
    Windows Server 2008
    (32bitマルチスレッド)
    "Baseパス\lib\libJevApiA.lib"
    Windows Server 2003(IPF)
    Windows Server 2008(IPF)
    (64bitマルチスレッド)
    "Baseパス\lib\libJevApiA.lib"
    HP-UX (PA-RISC)
    (32bitシングルスレッド)
    /opt/jp1base/lib/libJevApiAst.a
    HP-UX (PA-RISC)
    (32bitマルチスレッド)
    /opt/jp1base/lib/libJevApiAmt.a -lpthread
    HP-UX (IPF)
    (32bitシングルスレッド)
    /opt/jp1base/lib/libJevApiAst32.a
    HP-UX (IPF)
    (32bitマルチスレッド)
    -mt /opt/jp1base/lib/libJevApiAmt32.a
    HP-UX (IPF)
    (64bitシングルスレッド)
    +DD64 /opt/jp1base/lib/libJevApiAst64.a
    HP-UX (IPF)
    (64bitマルチスレッド)
    +DD64 -mt /opt/jp1base/lib/libJevApiAmt64.a
    Solaris
    (32bitシングルスレッド)
    /opt/jp1base/lib/libJevApiAst.a -ldl
    Solaris
    (32bitマルチスレッド)
    /opt/jp1base/lib/libJevApiAmt.a -ldl -lpthread
    AIX
    (32bitシングルスレッド)
    /opt/jp1base/lib/libJevApiAst.a -ldl
    AIX
    (32bitマルチスレッド)
    /opt/jp1base/lib/libJevApiAmt.a -ldl -lpthread
    Linux (x86)
    (32bitシングルスレッド)
    /opt/jp1base/lib/libJevApiAst.a -ldl
    Linux (x86)
    (32bitマルチスレッド)
    /opt/jp1base/lib/libJevApiAmt.a -ldl -lpthread
    Linux (IPF)
    (64bitシングルスレッド)
    /opt/jp1base/lib/libJevApiAst.a -ldl
    Linux (IPF)
    (64bitマルチスレッド)
    /opt/jp1base/lib/libJevApiAmt.a -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に引き渡すオプションと同じものを同じ順序で指定してください。

[目次][前へ][次へ]


[他社商品名称に関する表示]

All Rights Reserved. Copyright (C) 2006, 2008, Hitachi, Ltd.