CCompilerDriver`
CCompilerDriver`

CreateLibrary

CreateLibrary[source,name]

Cコードの文字列をコンパイルし,ライブラリファイル name.ext を作成する.

CreateLibrary[{file1,},name]

複数のCソースファイルをコンパイルし,ライブラリファイル name.ext を作成する.

詳細とオプション

  • CreateLibraryを使うにはまずNeeds["CCompilerDriver`"]でパッケージをロードしなければならない.
  • 最初の引数が文字列の場合,CreateLibraryはCコードとしてそれを扱う.最初の引数が1つまたは複数の文字列のリストの場合,Cコードを含むファイルのリストとしてそれを扱う.
  • CreateLibraryは適切なCコンパイラを見付けることができないときは,メッセージを生成し,$Failedを返す.
  • ライブラリに与えられる拡張子は,そのライブラリが作成されたプラットフォームに依存する.
  • 以下のオプションが使える:
  • "CleanIntermediate"Automatic一時ファイルを削除するかどうか
    "CompileOptions"""コンパイラに渡すオプション
    "Compiler"Automatic使用するコンパイラ
    "CompilerInstallation"Automaticコンパイラソフトウェアの場所
    "CompilerName"Automaticどのコンパイルコマンドを使うか
    "CreateBinary"Trueライブラリファイルを作るかどうか
    "Debug"Falseデバッグ情報を使ってコンパイルし,中間出力は削除せず,コンパイルコマンドと出力を表示する
    "Defines"{}ビルドで使用するCプリプロセッサの定義
    "ExtraObjectFiles"{}実行ファイルに含める,コンパイル済みのオブジェクトファイル
    "IncludeDirectories"{}includeパスに加えるディレクトリ
    "Language"Automaticソースコードの言語(自動検出を利用するのではなく,ソースがCまたはC++であることを前提とするのに使うことができる)
    "Libraries"{}実行ファイルの構築に使用するライブラリ
    "LibraryDirectories"{}ライブラリ検索パスに加えるディレクトリ
    "LinkerOptions"{}リンカに渡すオプション
    "PostCompileCommands"""コンパイルの後に実行するシェルコマンド
    "PreCompileCommands"""コンパイルの前に実行するシェルコマンド
    "ShellCommandFunction"Noneコンパイルで使用するシェルコマンドで呼び出す関数
    "ShellOutputFunction"Noneコンパイルコマンドの実行によるシェル出力で呼び出す関数
    "SystemCompileOptions"{}"CompileOptions"の前にコンパイラに渡すオプション
    "SystemIncludeDirectories"AutomaticWolfram言語ヘッダファイルを置くディレクトリ
    "SystemLibraries"AutomaticWolfram言語ライブラリ
    "SystemLibraryDirectories"AutomaticWolfram言語ライブラリを置くディレクトリ
    "SystemLinkerOptions"{}"LinkerOptions"の前にリンカに渡すオプション
    "TargetDirectory"Automatic実行ファイルが作られるディレクトリ
    "TargetSystemID"$SystemIDどのシステム用の出力を生成するか
    "TransferProtocolLibrary"Automatic使用するリンクライブラリ(WSTPまたはMathLink)
    "WorkingDirectory"Automatic一時ファイルを生成するためのディレクトリ
  • "CleanIntermediate"オプションは4つの設定のうちの一つが取れる.デフォルトのAutomaticでは,Windows以外ではすべての中間出力ファイルが削除される.Windowsではライブラリを使ってファイルをコンパイルするときに必要な.expファイルと.libファイルは削除されない.Trueではすべての中間出力ファイルが削除される.Falseでは中間出力ファイルは削除されない.Fullでは,作業ディレクトリにあるファイルは中間出力ファイルであってもなくてもすべて削除される.

例題

  (1)

まずパッケージをロードする:

これがライブラリのソースである:

ライブラリを作成する:

LibraryFunctionLoadを使ってライブラリをロードする:

ライブラリから呼ばれた関数を使う:

Wolfram Research (2010), CreateLibrary, Wolfram言語関数, https://reference.wolfram.com/language/CCompilerDriver/ref/CreateLibrary.html.

テキスト

Wolfram Research (2010), CreateLibrary, Wolfram言語関数, https://reference.wolfram.com/language/CCompilerDriver/ref/CreateLibrary.html.

CMS

Wolfram Language. 2010. "CreateLibrary." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/CCompilerDriver/ref/CreateLibrary.html.

APA

Wolfram Language. (2010). CreateLibrary. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/CCompilerDriver/ref/CreateLibrary.html

BibTeX

@misc{reference.wolfram_2024_createlibrary, author="Wolfram Research", title="{CreateLibrary}", year="2010", howpublished="\url{https://reference.wolfram.com/language/CCompilerDriver/ref/CreateLibrary.html}", note=[Accessed: 05-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_createlibrary, organization={Wolfram Research}, title={CreateLibrary}, year={2010}, url={https://reference.wolfram.com/language/CCompilerDriver/ref/CreateLibrary.html}, note=[Accessed: 05-November-2024 ]}