CreateLibrary
This feature is not supported on the Wolfram Cloud.


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


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

詳細詳細

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

例題例題すべて開くすべて閉じる

  (1)  (1)

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

In[1]:=
Click for copyable input

ライブラリのソース:

In[2]:=
Click for copyable input

ライブラリを作成する:

In[3]:=
Click for copyable input
Out[3]=

LibraryFunctionLoadでライブラリをロードする:

In[4]:=
Click for copyable input
Out[4]=

ライブラリの関数が呼び出される:

In[5]:=
Click for copyable input
Out[5]=