主要内容

墨西哥人

构建墨西哥人功能或引擎的应用程序

描述

例子

墨西哥人文件名编译和链接一个或多个c++源文件的编写MATLAB数据API到一个二进制墨西哥人文件在当前文件夹。写这些应用程序的更多信息,请参阅c++墨西哥人的应用程序

如果写墨西哥人文件的基础上矩阵C API或者是Fortran矩阵API,然后墨西哥人文件名构建一个或多个C、c++和Fortran源文件-R2017bapi。在未来版本的MATLAB®,默认的api选择将会改变使用交错复杂的API (-R2018a)。MathWorks建议您创建墨西哥人的文件和更新现有的墨西哥人文件使用交错复杂的API。另外,使用MX_HAS_INTERLEAVED_COMPLEX宏以确保在MATLAB版本所需的行为。有关更多信息,请参见MATLAB支金宝app持墨西哥人交错复杂的API函数

信息处理C、c++和Fortran程序,看看MATLAB与外部编程语言和系统集成

例子

墨西哥人文件名apioption1……optionN建立与指定的api和可选的option1……optionN参数。的option1……optionN参数的补充或覆盖默认的墨西哥人构建配置。

墨西哥人客户端引擎文件名构建c++源文件的编写MATLAB数据API到独立的MATLAB引擎应用程序中。有关更多信息,请参见介绍c++的引擎API

如果基础上编写应用程序MATLAB引擎API为C,MATLAB C API来读取MAT-File数据,MATLAB引擎API Fortran,或者是MATLAB Fortran API来读取MAT-File数据,然后墨西哥人客户端引擎文件名构建一个独立的应用程序的-R2017bapi。在未来版本的MATLAB,默认值api选择将会改变使用交错复杂的API (-R2018a)。MathWorks建议您创建引擎的应用程序和更新现有的应用程序使用交错复杂的API。

墨西哥人客户端引擎文件名apioption1……optionN构建引擎与指定的应用程序api和可选的option1……optionN参数。

墨西哥人设置(]显示信息的默认编译器构建墨西哥人文件给定的语言。为每个受支持的语言MATLAB编译器定义了一个默认的。金宝app如果您有多个编译器对于一个给定的语言,使用选择更改默认语言的编译器。有关更多信息,请参见改变默认的编译器选择一个c++编译器

墨西哥人设置客户端引擎[]选择一个编译器构建引擎应用程序。

例子

全部折叠

复制的源代码示例matlabroot/外面的例子文件夹中。

拷贝文件(fullfile (matlabroot,“外来的”,“例子”,墨西哥人的,“explore.c”),“。”,“f”)

构建的墨西哥人文件。输出显示特定于您的编译器信息。

墨西哥人-R2018aexplore.c

测试。

一个= [1 3 5];b = [5 3 1];一个=复杂(A, b);探索(A)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -名称:prhs[0]维度:1 x3类名:双- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(1,1)= 1 + 5(1、2)= 3 + 3(1、3)= 5 + 1我

建立一个单一的C程序yprime.c到一个墨西哥人的文件中。

创建一个可写的文件夹路径c: \工作并将它设置为当前文件夹。

(年代,味精,是否)= mkdir (“c: \工作”);如果(isempty(是否))mkdir (“c: \工作”)结束cdc: \工作

复制的源代码示例matlabroot/外面的例子文件夹中。

拷贝文件(fullfile (matlabroot,“外来的”,“例子”,墨西哥人的,“yprime.c”),“。”,“f”)

构建的墨西哥人文件。输出显示特定于您的编译器信息。

墨西哥人yprime.c
建筑的MinGW64 C编译器”。墨西哥人成功完成。

测试。

T = 1;Y = 1:4;yprime (T, Y)
ans = 2.0000 8.9685 4.0000 -1.0947

显示编译和链接命令和其他信息用于故障诊断,使用冗长的模式。

墨西哥人- v-compatibleArrayDimsyprime.c

输出显示特定于您的信息平台和编译器。

构建yprime.c墨西哥人文件的附加价值- wall现有的编译器标志。因为价值包含一个空格字符,你必须描述字符串;你使用的角色取决于平台。

在MATLAB提示,使用MATLAB单引号()。

墨西哥人- vCOMPFLAGS = ' $ - wall COMPFLAGS 'yprime.c

MinGW-w64编译器,基于gcc / g + +,使用Linux®编译器标志。

墨西哥人- vCXXFLAGS = ' $ - wall CXXFLAGS 'yprime.c

在窗户®命令提示符,使用双引号()。

墨西哥人- vCOMPFLAGS = " COMPFLAGS美元- wall”yprime.c

在shell命令行macOS和Linux,使用单引号()。

墨西哥人- vCFLAGS = ' $ CFLAGS - wall’yprime.c

墨西哥人文件的例子fulltosparse包括两个Fortran源文件,loadsparse.Ffulltosparse.F。要运行这个示例,您需要一个支持Fortran编译器安装在您的系统金宝app上。

将源文件复制到当前文件夹。

拷贝文件(fullfile (matlabroot,“外来的”,“例子”,“refbook”,“loadsparse.F”),“。”,“f”)复制文件(fullfile (matlabroot,“外来的”,“例子”,“refbook”,“fulltosparse.F”),“。”,“f”)

构建fulltosparse墨西哥人文件。墨西哥人的文件名fulltosparse因为fulltosparse.F是第一个文件在命令行上。输出包含特定于您的编译器信息。

墨西哥人-largeArrayDimsfulltosparse.Floadsparse.F
建筑的英特尔和微软Visual Fortran作曲家XE 2013 Visual Studio 2012的。墨西哥人成功完成。

测试。

完整的眼睛= (5);晶石= fulltosparse(全)
晶石= 1 1 1 2 2 1 3 3 1 4,4 1 5 5 1

结合当前文件夹中的所有C源文件到墨西哥人文件中mymex。使用与产出选择控制墨西哥人文件的名称。

墨西哥人与产出mymex* . c

预览构建命令细节不执行命令,使用- n选择。输出包含特定于您的信息平台和编译器。

墨西哥人- nyprime.c

你可以链接到目标文件你分开编译源文件墨西哥人。

墨西哥人文件示例fulltosparse包括两个Fortran源文件。的fulltosparse文件是网关程序(包含mexFunction子例程),loadsparse包含了计算程序。

要运行这个示例,您需要一个支持Fortran编译器安装在您的系统金宝app上。计算子程序复制到当前文件夹。

拷贝文件(fullfile (matlabroot,“外来的”,“例子”,“refbook”,“loadsparse.F”),“。”,“f”)

编制子程序和对象文件在一个单独的文件夹,c: \ objfiles

mkdirc: \ objfiles墨西哥人-largeArrayDims- c-outdirc: \ objfilesloadsparse.F
建筑的英特尔和微软Visual Fortran作曲家XE 2013 Visual Studio 2012的。墨西哥人成功完成。

网关子程序复制到当前文件夹。编译和链接loadsparse对象文件。

拷贝文件(fullfile (matlabroot,“外来的”,“例子”,“refbook”,“fulltosparse.F”),“。”,“f”)墨西哥人-largeArrayDimsfulltosparse.Fc: \ objfiles \ loadsparse.obj
建筑的英特尔和微软Visual Fortran作曲家XE 2013 Visual Studio 2012的。墨西哥人成功完成。

指定的路径包括MATLAB LAPACK库子程序处理复数的例程,使用-我选择。要使用这些子例程,墨西哥人文件必须访问头文件fort.h

复制matrixDivideComplex.c当前文件夹。

拷贝文件(fullfile (matlabroot,“外来的”,“例子”,“refbook”,“matrixDivideComplex.c”),“。”,“f”)

创建-我参数的连接“我”与路径fort.h文件。

ipath = [“我”fullfile (matlabroot“外来的”,“例子”,“refbook”));

创建变量的名称和路径LAPACK库文件和文件,fort.c,包含复数处理例程。

lapacklib = fullfile (matlabroot,“外来的”,“自由”、计算机(“拱”),“微软”,“libmwlapack.lib”);fortfile = fullfile (matlabroot,“外来的”,“例子”,“refbook”,“fort.c”);

构建的墨西哥人文件。

墨西哥人(“v”,“-R2017b”ipath,“matrixDivideComplex.c”、fortfile lapacklib)

构建matrixDivide.c在Windows平台上使用的例子- l- l选项来指定libmwlapack.lib图书馆。库文件所在的文件夹,matlabrootextern \ \ lib \微软\

复制matrixDivide.c当前文件夹。

拷贝文件(fullfile (matlabroot,“外来的”,“例子”,“refbook”,“matrixDivide.c”),“。”,“f”)

捕获的价值matlabroot

matlabroot
ans = C:\Program Files\MATLAB\R2014a

捕获的价值

计算机(“拱”)
ans = win64

墨西哥人的文件,拷贝的值matlabroot墨西哥人命令,如以下所示的声明。

墨西哥人lc: \ MATLAB程序文件\ \ R2014a \走读生\ lib \ win64 \微软的-llibmwlapackmatrixDivide.c

你必须使用字符,因为\程序文件路径中包含了一个空间。

mxcreatecharmatrixfromstr.c示例使用一个#定义象征SPACE_PADDING确定使用哪些字符特征向量之间的一个矩阵。设置值,构建文件的墨西哥人- d选择。

将示例复制到当前文件夹。

拷贝文件(fullfile (matlabroot,“外来的”,“例子”,“mx”,“mxcreatecharmatrixfromstr.c”),“。”,“f”)

设置SPACE_PADDING指令之间添加一个空间值。

墨西哥人mxcreatecharmatrixfromstr.c-DSPACE_PADDING
建筑的MinGW64 C编译器”。墨西哥人成功完成。

复制engwindemo.c引擎的例子到当前文件夹。

拷贝文件(fullfile (matlabroot,“外来的”,“例子”,“eng_mat”,“engwindemo.c”),“。”,“f”)
墨西哥人客户端引擎engwindemo.c

如果你是Windows平台上运行,你必须首先注册MATLAB作为COM服务器。有关更多信息,请参见MATLAB注册为一个COM服务器

运行示例。

engwindemo !
墨西哥人设置

基于MATLAB版本和系统显示选项的列表金宝app支持和兼容的编译器

添加选项墨西哥人链接命令,使用LINKFLAGS命令行选项。例如,指定可执行文件在构建环境mymex.c在Windows上,类型:

墨西哥人- vLINKFLAGS = ' $ LINKFLAGS /子系统:windows 'mymex.c

输入参数

全部折叠

一个或多个文件名,包括名称和文件扩展名,指定为一个字符串或一个字符向量。如果文件不在当前文件夹,指定文件的完整路径。

文件名称可以任意组合:

  • C、c++或Fortran语言源文件

  • 金宝app®函数文件

  • 对象文件

  • 静态库文件。文件名必须包含库文件的完全限定路径。使用动态链接库- l库名选择。

第一个源代码文件中列出文件名是二进制墨西哥人文件的名称或引擎的应用程序。要覆盖此命名约定,可以使用与产出的选择。

使用MATLAB编辑器来编写源代码。如果你使用一个集成开发环境(IDE)等微软®Visual Studio®Xcode,那么你可以使用墨西哥人命令或遵循的指导方针自定义构建与墨西哥人脚本选项

MATLAB编译器自动选择一个,如果安装,基于的语言文件名参数。

数据类型:字符

与释放特定的联系矩阵C APIFortran矩阵API,指定为一个值。不要把这些选项。

不要使用此选项为墨西哥人文件或引擎应用程序使用吗MATLAB数据API

API 描述

-R2017b(默认)

构建:

  • 分离复杂的API,它包含C和Fortran矩阵早些时候在MATLAB R2017b和API的功能。

  • Large-array-handling API,它处理数组有超过231日1的元素。

  • 把一个图形对象的句柄对象,而不是

在未来版本的MATLAB,默认值api选择将会改变使用交错复杂的API (-R2018a)。MathWorks建议您创建应用程序和更新现有的应用程序使用交错复杂的API。另外,使用MX_HAS_INTERLEAVED_COMPLEX宏以确保在MATLAB版本所需的行为。有关更多信息,请参见MATLAB支金宝app持墨西哥人交错复杂的API函数

-R2018a

构建:

运行一个Fortran墨西哥人文件用MATLAB R2018a交错复杂的API,您必须使用MATLAB R2018a更新3。

-largeArrayDims

构建:

  • 单独的复杂的API

  • Large-array-handling API

  • 把一个图形对象的句柄对象,而不是。治疗处理,将这个选项-DMEX_DOUBLE_HANDLE

-compatibleArrayDims

构建:

  • 单独的复杂的API

  • 7.2版本数组处理API更上,这限制了数组231日1的元素

  • 把一个图形对象的句柄对象,而不是。治疗处理,将这个选项-DMEX_DOUBLE_HANDLE

不使用-compatibleArrayDims选择的时候调用LAPACK或布拉斯特区功能

默认选项C墨西哥人S-functions。

例子:墨西哥人-R2018a explore.c

可选的构建选项,指定这些值。选项可以在任何顺序出现在任何平台,除外。

选项 描述

@rspfile

使用Windows负责文件。一个负责文件包含命令行选项是一个文本文件。不支持非ascii字符。金宝app

- c

编译一个对象文件。没有建立一个二进制文件墨西哥人。

客户端引擎

构建应用程序引擎。

- dsymbolname
- dsymbolname=symbolvalue
- usymbolname

- d选项C预处理器宏定义。相当于在源文件如下:

  • #定义symbolname

  • #定义symbolnamesymbolvalue

- u选择删除任何C预处理器宏的初始定义,symbolname。逆的- d选择。

不之间添加一个空间DUsymbolname。不要添加空格在吗=的迹象。

例子:定义编译器指令

- ffilepath

覆盖默认的编译器的选择。filepath是配置文件的名称和完整路径,指定为一个字符串或一个字符向量。使用非默认编译器的信息,请参阅改变默认的编译器

不使用- f选择构建引擎的应用程序。使用客户端引擎选项。

- g

添加符号信息和禁用优化对象代码。用于调试。调试与优化,添加- o选择。

- h (elp)

显示帮助墨西哥人。使用从操作系统提示符。

-我路径名

增加了路径名搜索文件夹的列表# include文件。

不之间添加一个空间路径名

例子:指定包含文件路径

- l库名
- llibfolder- l库名

与动态对象库库名(可选)libfolder

MATLAB的扩张库名:

  • 库名. lib自由库名. lib——Windows系统

  • 自由库名. dylib- - - - - -macOS系统

  • 自由库名所以——Linux系统

如果使用,- l选择必须先于- l选择。当使用- l在Linux或选项macOS系统,您还必须设置运行时库路径,作为解释设置运行时库路径

不之间添加一个空间l库名之间或llibfolder

指定- l用小写字母选项l

链接静态库,使用文件名输入参数

例子:指定库文件路径

- n

显示,但不执行命令墨西哥人将执行。

例子:预览构建命令

- o

优化对象的代码。使用这个选项编译和优化。

优化是默认启用。优化时禁用- g选择似乎没有- o选择。

指定这个选项用大写字母O

-outdir目录名

所有输出文件在文件夹的地方目录名

例子:创建并链接到单独的对象文件

与产出mexname

覆盖默认的墨西哥人文件的命名机制。创建二进制文件命名的墨西哥人mexname适当的墨西哥人文件扩展名。

例子:把源文件使用通配符

设置

更改默认编译器来构建墨西哥人的语言文件或引擎的应用程序。当您使用这个选项,墨西哥人忽略了其他所有的命令行选项。

沉默

抑制信息性消息。的墨西哥人命令仍然报告错误和警告,即使你指定沉默

- usymbolname

删除任何初始的定义C预处理器宏symbolname。(逆- d选择。)

不之间添加一个空间Usymbolname

- v

在详细模式构建。显示内部变量的值后所有的命令行参数。显示每个编译和链接的步骤完全评估。用于故障诊断的编译器设置问题。

例子:显示详细的构建和故障诊断信息

varname=varvalue

覆盖默认设置为变量varname。毕竟这个选项处理命令行参数。

例子:覆盖默认的编译器开关选项

语言,作为其中一个不分大小写值指定。

C

C编译器,包括c++

c++CPP

c++编译器

Fortran

Fortran编译器

提示

  • 您可以运行墨西哥人来自:

    • MATLAB命令窗口

    • Windows系统提示

    • macOS终端

    • Linux shell

    MATLAB命令行用法外,墨西哥人项目位于指定的文件夹[matlabroot ' / bin ']在UNIX和[matlabroot ' \ bin \ win64 ']在Windows上。

  • 墨西哥人文件与平台相关的扩展。为不同的平台可以将二进制墨西哥人文件在同一文件夹中。确定墨西哥人文件扩展名,使用mexext函数。

    墨西哥人文件与平台相关的扩展

    平台 二进制墨西哥人文件扩展名

    Linux(64位)

    mexa64

    苹果Mac(64位)

    mexmaci64

    Windows(64位)

    mexw64

  • 使用墨西哥人建立独立的MATLAB引擎应用程序可执行文件,使用客户端引擎选择。

  • 墨西哥人命令不支持文件夹名称包含双引号(金宝app)字符。

之前介绍过的R2006a