IDA BUILDLIB コマンド

IDA BUILDLIB CLPPlus コマンドは C++ 共有ライブラリーを作成します。つまり、C++ で作成された 1 つ以上の UDX で使用可能な実行可能コードを生成します。 このコマンドは IDA DEPLOYUDX コマンドと同じステップを実行しますが、生成されたライブラリー・ファイルを使用するための UDX の登録を行わない点が異なります。

このコマンドは、以下のことを行います。
  • データベース・サーバーのユーザー・ホームの下にプロジェクト・ディレクトリーを作成し、UDX ソース・ファイルを含む圧縮ファイルをプロジェクト・ディレクトリーにアップロードします。
  • すべてのソース・ファイルをコンパイルして、オブジェクト・ファイルを作成します。
  • オブジェクト・ファイルをリンクして、ライブラリー・ファイルを作成します。
  • ライブラリー・ファイルと、ライブラリーで使用されるその他のファイルをリリース・ディレクトリーにプロモートします。

IDA DEPLOYUDX コマンドと同様に、これらのステップを制御するパラメーターを、コマンド・ストリング、IDA パラメーター・ファイル、またはその両方に指定できます (IDA パラメーター・ファイルを参照してください)。 指定された IDA パラメーター・ファイルに、ビルド・プロセスに適用されないパラメーター (例えば、UDX シグニチャーまたは戻りの型) が含まれている場合、それらのパラメーターは無視されます。

呼び出し

このコマンドは CLPPlus インターフェースから実行する必要があります。

許可

なし

必要な接続

CLPPlus がデータベースに接続されている必要があります。

コマンド構文

IDA BUILDLIB

IDA BUILDLIB [ PARAMFILEparameter_file ] SOURCEcompressed_file [ { PROJECTname_of_compressed_file | PROJECTproject } ] { <> } [ { PROMOTEfile_name | PROMOTE" file_name " } ] [ { REPLACEPROMPT | REPLACEYES | REPLACENO } ] [ { LIBRARY libname_of_project | LIBRARYlibrary | LIBRARYlibrary( file ) } ] [ { USELIBRARY project_name | USELIBRARYproject_name:library.so } ] [ { INCLUDEDIRECTORIESdirectory | INCLUDEDIRECTORIES" directory " } ] [ { BINDIRbin | BINDIRdir } ] { }

コマンド・パラメーター

PARAMFILE
このコマンドに明示的に指定されていないパラメーターのデフォルト値を決定する IDA パラメーター・ファイルの名前 (IDA パラメーター・ファイルを参照)。

コマンド・ストリングで明示的に指定されていない主要な必須パラメーターは、すべてパラメーター・ファイルで指定する必要があります。 このコマンドの主要な必須パラメーターは SOURCE (省略形は SRC) だけです。

SOURCE | SRC
ライブラリーが作成される UDX で必要なすべてのソース・ファイルを含む圧縮ファイルの完全修飾名。
PROJECT | PROJ
指定されたソース・ファイルのセット用に作成されるプロジェクト・ディレクトリーの名前。 名前に使用できるのは、英数字 (A から Z、a から z、0 から 9)、および下線文字 (_) のみです。デフォルトは、 SOURCE パラメーターで指定されたファイルの名前から拡張子を除いたものです。
PROMOTE
リリース・ディレクトリーにプロモートされる、生成されたライブラリー (C++ で作成された UDX の場合は library パラメーターに指定されたファイル) などのファイルのコンマ区切りリスト。
ENVIRONMENT | ENV
UDX の登録中に使用される環境変数のコンマ区切りリストが含まれるストリング。 以下に例を示します。
ENV "'USD_TO_INR'='60','EUR_TO_INR'='80'"
REPLACE
指定された名前のプロジェクトが既に存在する場合に、以下のいずれかを指定します。
YES
既存のプロジェクトを削除し、新規プロジェクトで置換します。
NO
コマンドをキャンセルして、アクションを実行しません。
PROMPT
ユーザーに対して、以下のいずれかの操作を指定するよう指示します。
  • コマンドを続行し、既存のプロジェクトを削除して置換します。
  • コマンドをキャンセルして、アクションを実行しません。
LIBRARY | LIB
生成されるライブラリー・ファイルに割り当てられる名前 (拡張子を含む)。デフォルトは lib<project>.so という形式の名前です。 例えば、プロジェクト名が udx77 の場合、生成されるライブラリーのデフォルト名は libudx77.so になります。

追加のオブジェクト・ファイル (.o ファイル)、静的ライブラリー (.a ファイル)、または共有ライブラリー (.so ファイル) がリンク・ステップに組み込まれ、リリース・ディレクトリーにプロモートされる場合、これらは指定されたライブラリー名の後のコンマ区切りリストで指定できます。 DEPLOYUDX 操作では、LIBRARYDIRECTORIES パラメーターで指定されたディレクトリー内のファイルが検索されます。したがって、名前にパス情報が含まれないようにします。 ファイル名には、ファイル拡張子を含める必要があります。 例えば、mylib.so(obj1.o,obj2.o,lib25.so,lib50.a) のようにします。

USELIBRARY | USELIB
<project>[:<library>] 項目 (ビルド・ライブラリーが依存する UDSL) のコンマ区切りリスト。 IDA REST API 呼び出しに渡されます。C++ でのみ使用可能です。library 部分のデフォルトは lib<project>.so です。 リストで参照されるライブラリーは、release/DEPS フォルダー内のライブラリーへのシンボリック・リンクとなります。
INCLUDEDIRECTORIES | INCLUDEDIRS
コンパイル時に組み込むファイルが含まれているプロジェクト・ディレクトリーに対して相対的に指定された、コンマで区切られたサブディレクトリーのリスト。 以下に例を示します。
INCLUDEDIRS "inc/sub2,myincludes"
BINARYDIRECTORY | BINDIR
コンパイル時に作成されたオブジェクト・ファイルが保管されるプロジェクト・ディレクトリーのサブディレクトリーの名前。

次のコマンドは、pf1b.txt という名前のパラメーター・ファイルを使用して、すべてのパラメーターを指定します。
SQL> IDA BUILDLIB PARAMFILE pf1b.txt
次のコマンドは、pf1b.txt で指定された一部のパラメーターを上書きします。
SQL> IDA BUILDLIB PARAMFILE pf1b.txt SRC udxin4.tar PROJ udx77
次のコマンドは、パラメーター・ファイルを指定しません。パラメーターはすべてコマンド・ストリングで指定されます。 指定されていないすべてのパラメーターにデフォルトが使用されます。
SQL> IDA BUILDLIB SRC C:\udxdev\udx1\*.zip PROJ udx77 REPLACE YES