CreateLibrary
This feature is not supported on the Wolfram Cloud.

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

CreateLibrary[File["path"],"name"]
Cソースファイルをコンパイルする.

CreateLibrary[{file1,},name]
複数のCソースファイルをコンパイルし,ライブラリを作成する.

詳細詳細

  • CreateLibraryを使うにはまずNeeds["CCompilerDriver`"]でCCompilerDriverパッケージをロードしなければならない.
  • CreateLibraryは適切なCコンパイラを見付けることができないときは,メッセージを生成し,$Failedを返す.
  • ライブラリに与えられる拡張子は,$OperatingSystemの設定によって異なる.
  • CreateLibrary[{file1,},name]において,各 filei"path"またはFile["path"]として指定できる.
  • 以下のオプションが使える:
  • "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"{}"CompileOptions"の前にコンパイラに渡すオプション
    "SystemIncludeDirectories"AutomaticWolfram言語ヘッダファイルを置くディレクトリ
    "SystemLibraries"AutomaticWolfram言語ライブラリ
    "SystemLibraryDirectories"AutomaticWolfram言語ライブラリを置くディレクトリ
    "SystemLinkerOptions"{}"LinkerOptions"の前にリンカに渡すオプション
    "TargetDirectory"Automatic実行ファイルが作られるディレクトリ
    "TargetSystemID"$SystemIDどのシステム用の出力を生成するか
    "WorkingDirectory"Automatic一時ファイルを生成するためのディレクトリ
  • "CleanIntermediate"オプションは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]=