此为 Mathematica 8 文档,内容基于更早版本的 Wolfram 语言
查看最新文档(版本11.1)

CreateLibrary


compiles a string of C code and creates a library file, .

compiles a number of C source files and creates a library file, .
  • To use , you first need to load it using Needs.
  • If the first argument is a string, treats it as C code. If the first argument is a list of one or more strings, it is treated as a list of files that contain C code.
  • If cannot find a suitable C compiler, it issues a message and returns $Failed.
  • The extension given to the library depends on the platform for which the library is created.
  • The following options can be given:
"Compiler"Automaticthe compiler to use
"CleanIntermediate"Automaticwhether temporary files should be deleted
"CreateBinary"Truewhether the library file should be created
"CompileOptions"""options to pass through to the compiler
"CompilerInstallation"Automaticlocation of the compiler software
"CompilerName"Automaticwhich compile command to use
"Debug"Falsecompile with debug information, do not clean the intermediate output, and print the compile commands and output
"Defines"{}C preprocessor defines to use for the build
"ExtraObjectFiles"{}previously compiled object files to include in the executable
"IncludeDirectories"{}directories to add to the include path
"Language"Automaticwhat language the source code is in (can be used to assume source is C or C++ rather than relying on automatic detection)
"Libraries"{}libraries to use to build the executable
"LibraryDirectories"{}directories to add to the library lookup path
"LinkerOptions"{}options passed to the linker
"PreCompileCommands"""shell commands to run before compilation
"PostCompileCommands"""shell commands to run after compilation
"ShellCommandFunction"Nonefunction to call with the shell commands used for compilation
"ShellOutputFunction"Nonefunction to call with the shell output of running the compilation commands
"SystemCompileOptions"{}options to pass through to the compiler before
"SystemIncludeDirectories"Automaticdirectories to locate Mathematica header files
"SystemLibraries"AutomaticMathematica libraries such as MathLink
"SystemLibraryDirectories"Automaticdirectories to locate Mathematica libraries
"SystemLinkerOptions"{}options passed to the linker before
"TargetDirectory"Automaticthe directory in which the executable file should be created
"TargetSystemID"$SystemIDthe system for which output should be generated
"WorkingDirectory"Automaticthe directory in which temporary files should be generated
  • The option can take one of four settings. Automatic, the default, removes all intermediate files except on Windows, where the .exp and .lib files are preserved since they are needed when compiling files using the library. True removes all intermediate files. False preserves all intermediate files. Full indiscriminately removes all files in the working directory whether they are intermediate files or not.
  • If the result is to be quite independent of Mathematica, then the option should be set to : this makes sure that MathLink libraries are not included in the link stage.
First, load the package:
This is the source of a library:
This creates a library:
Now, the library is loaded with LibraryFunctionLoad:
Here a function from the library is called:
First, load the package:
In[1]:=
Click for copyable input
This is the source of a library:
In[2]:=
Click for copyable input
This creates a library:
In[3]:=
Click for copyable input
Out[3]=
Now, the library is loaded with LibraryFunctionLoad:
In[4]:=
Click for copyable input
Out[4]=
Here a function from the library is called:
In[5]:=
Click for copyable input
Out[5]=