从C/ c++或Fortran源代码构建MEX函数
墨西哥人文件名
墨西哥人option1……optionN文件名
墨西哥人设置朗
Mex -setup -client engine [lang]
例子
墨西哥人文件名编译和链接一个或多个C、c++或Fortran源文件到二进制MEX文件,可从MATLAB调用®.文件名指定源文件。还为独立的MATLAB引擎和mat文件应用程序构建可执行文件。
文件名
MATLAB自动选择编译器,如果安装,基于语言文件名参数。
墨西哥人option1……optionN文件名使用指定的生成选项生成。的option1……optionN实参补充或覆盖默认值墨西哥人构建配置。
option1……optionN
墨西哥人
墨西哥人设置朗对象的编译器朗.使用此选项可更改给定语言的默认编译器。
朗
Mex -setup -client engine [朗]选择用于构建引擎应用程序的编译器。当您想更改默认编译器时,请使用此选项。使用朗参数选择Fortran或c++编译器。
Mex -setup -client engine [朗]
全部折叠
构建一个C程序yprime.c到MEX文件中。
yprime.c
在路径上创建一个可写文件夹c: \工作并将其设置为当前文件夹。
c: \工作
(年代,味精,是否)= mkdir (“c: \工作”);如果(isempty(是否))mkdir (“c: \工作”)结束cdc: \工作
文件中复制源代码示例matlabroot/外面的例子文件夹中。
matlabroot/外面的例子
拷贝文件(fullfile (matlabroot,“外来的”,“例子”,墨西哥人的,“yprime.c”),“。”,“f”)
构建MEX文件。输出显示特定于编译器的信息。
墨西哥人yprime.c
使用“MinGW64 Compiler C”编译。墨西哥人成功完成。
测试。
T = 1;Y = 1:4;yprime (T, Y)
Ans = 2.0000 8.9685 4.0000 -1.0947
若要显示编译和链接命令以及对故障排除有用的其他信息,请使用verbose模式。
墨西哥人- v-compatibleArrayDimsyprime.c
输出显示特定于您的平台和编译器的信息。
构建yprime.c通过附加值来添加MEX文件- wall添加到现有的编译器标志。因为该值包含一个空格字符,所以必须限定字符串;你使用的角色取决于平台。
- wall
在MATLAB提示下,使用MATLAB单引号(').
'
墨西哥人- vCOMPFLAGS = ' $ - wall COMPFLAGS 'yprime.c
MinGW-w64编译器基于gcc/g++,使用Linux操作系统®编译器标志。
墨西哥人- vCXXFLAGS = ' $ - wall CXXFLAGS 'yprime.c
在窗户®命令提示符,使用双引号(").
"
墨西哥人- vCOMPFLAGS = " COMPFLAGS美元- wall”yprime.c
在Mac和Linux上的shell命令行中,使用单引号(').
墨西哥人- vCFLAGS = ' $ CFLAGS - wall’yprime.c
MEX文件示例fulltosparse包含两个Fortran源文件,loadsparse。F而且fulltosparse。F.要运行此示例,您需要在系统上安装一个受支持的Fortran编译器金宝app。
fulltosparse
loadsparse。F
fulltosparse。F
将源文件复制到当前文件夹。
拷贝文件(fullfile (matlabroot,“外来的”,“例子”,“refbook”,“loadsparse。F '),“。”,“f”)复制文件(fullfile (matlabroot,“外来的”,“例子”,“refbook”,“fulltosparse。F '),“。”,“f”)
构建fulltosparse墨西哥人文件。MEX文件名为fulltosparse因为fulltosparse。F是命令行中的第一个文件。输出包含特定于编译器的信息。
墨西哥人-largeArrayDimsfulltosparse。Floadsparse。F
使用“Intel Visual Fortran Composer XE 2013 with Microsoft Visual Studio 2012”构建。墨西哥人成功完成。
完整的眼睛= (5);晶石= fulltosparse(全)
SPAR = 1,1,1,2,2,1,1,3,3,1,4,4,1,5,5,1
将当前文件夹中的所有C源文件合并到MEX文件中mymex.使用与产出选项来控制MEX文件的名称。
mymex
与产出
墨西哥人与产出mymex* . c
要在不执行命令的情况下预览构建命令的详细信息,请使用- n选择。输出包含特定于平台和编译器的信息。
- n
墨西哥人- nyprime.c
您可以链接到与源MEX文件分开编译的目标文件。
MEX文件示例fulltosparse包含两个Fortran源文件。的fulltosparse文件是网关例程(包含mexFunction子例程),loadsparse包含计算例程。
mexFunction
loadsparse
要运行此示例,您需要在系统上安装一个受支持的Fortran编译器金宝app。将计算子例程复制到当前文件夹。
拷贝文件(fullfile (matlabroot,“外来的”,“例子”,“refbook”,“loadsparse。F '),“。”,“f”)
编译子例程并将目标文件放在单独的文件夹中,c: \ objfiles.
c: \ objfiles
mkdirc: \ objfiles墨西哥人-largeArrayDims- c-outdirc: \ objfilesloadsparse。F
将网关子例程复制到当前文件夹。编译并链接到loadsparse对象文件。
拷贝文件(fullfile (matlabroot,“外来的”,“例子”,“refbook”,“fulltosparse。F '),“。”,“f”)墨西哥人-largeArrayDimsfulltosparse。Fc: \ objfiles \ loadsparse.obj
要指定包含处理复数例程的MATLAB LAPACK库子例程的路径,请使用-我选择。要使用这些子例程,您的MEX文件必须访问头文件fort.h.
-我
fort.h
复制matrixDivideComplex.c示例添加到当前文件夹。
matrixDivideComplex.c
拷贝文件(fullfile (matlabroot,“外来的”,“例子”,“refbook”,“matrixDivideComplex.c”),“。”,“f”)
创建-我参数的连接“我”有了通往fort.h文件。
“我”
ipath = [“我”fullfile (matlabroot“外来的”,“例子”,“refbook”));
为LAPACK库文件的名称和路径创建变量,fort.c,包含复数处理例程。
fort.c
lapacklib = fullfile (matlabroot,“外来的”,“自由”、计算机(“拱”),“微软”,“libmwlapack.lib”);fortfile = fullfile (matlabroot,“外来的”,“例子”,“refbook”,“fort.c”);
构建MEX文件。
墨西哥人(“v”ipath,“matrixDivideComplex.c”、fortfile lapacklib)
构建matrixDivide.c实例在Windows平台上使用- l而且- l选项来指定libmwlapack.lib图书馆。库文件位于文件夹中,matlabrootextern \ \ lib \拱微软\.
matrixDivide.c
- l
libmwlapack.lib
matlabrootextern \ \ lib \拱微软\
matlabroot
拱
复制matrixDivide.c示例添加到当前文件夹。
拷贝文件(fullfile (matlabroot,“外来的”,“例子”,“refbook”,“matrixDivide.c”),“。”,“f”)
捕获的值matlabroot.
ans = C:\Program Files\MATLAB\R2014a
捕获的值拱.
计算机(“拱”)
ans = win64
要构建MEX文件,请复制的值matlabroot而且拱到墨西哥人命令,如下面的语句所示。
墨西哥人lc: \ MATLAB程序文件\ \ R2014a \走读生\ lib \ win64 \微软的...-llibmwlapackmatrixDivide.c
你必须使用'字符,因为\程序文件在路径中包含一个空格。
\程序文件
的mxcreatecharmatrixfromstr.c示例使用一个#定义象征SPACE_PADDING确定在矩阵中的字符向量之间使用什么字符。方法构建MEX文件以设置该值- d选择。
mxcreatecharmatrixfromstr.c
#定义
SPACE_PADDING
- d
将示例复制到当前文件夹。
拷贝文件(fullfile (matlabroot,“外来的”,“例子”,“mx”,“mxcreatecharmatrixfromstr.c”),“。”,“f”)
设置SPACE_PADDING指令在值之间添加空格。
墨西哥人mxcreatecharmatrixfromstr.c-DSPACE_PADDING
复制engwindemo.c引擎示例到当前文件夹。
engwindemo.c
拷贝文件(fullfile (matlabroot,“外来的”,“例子”,“eng_mat”,“engwindemo.c”),“。”,“f”)
墨西哥人客户端引擎engwindemo.c
如果您在Windows平台上运行,则必须首先将MATLAB注册为COM服务器。有关更多信息,请参见将MATLAB注册为COM服务器.
运行示例。
engwindemo !
墨西哥人设置
的列表为您的版本和系统显示选项金宝app支持和兼容的编译器.
指定为字符向量的一个或多个文件名,包括文件名和文件扩展名。如果文件不在当前文件夹中,请指定文件的完整路径。文件名可以是以下任意组合:
C、c++或Fortran语言源文件
金宝app®函数文件
对象文件
静态库文件。要链接动态库,请使用- l库名选择。
- l库名
库名
中的第一个源代码文件文件名是二进制MEX文件的名称。要覆盖此命名约定,请使用与产出的选择。
与产出的
数据类型:字符
字符
一个或多个构建选项,指定为这些值之一。选项可以在任何平台上以任何顺序出现,除非有指示。
@rspfile
rspfile
使用Windows RSP文件。RSP文件是包含命令行选项的文本文件。不支持非ascii字符。金宝app
- c
只编译一个目标文件。不构建二进制MEX文件。
客户端引擎
构建应用程序引擎。
-compatibleArrayDims-largeArrayDims(默认)
-compatibleArrayDims
-largeArrayDims
与指定的MATLAB数组处理API的链接。
-compatibleArrayDims-使用MATLAB版本7.2数组处理API,它将数组限制为2311的元素。C MEX S-functions的默认选项。
-largeArrayDims-使用MATLAB大数组处理API。这个API处理超过2的数组311的元素。在调用LAPACK或BLAS函数时必须使用此选项。MEX文件的默认选项。
在详细模式(- v选项),如果不指定-compatibleArrayDims或者是-largeArrayDims选项,MATLAB会显示一个消息,显示默认选项。
- v
- dsymbolname- dsymbolname=symbolvalue- usymbolname
- dsymbolname
symbolname
- dsymbolname=symbolvalue
symbolvalue
- usymbolname
的- doptions定义C预处理器宏。相当于源文件中的如下内容:
#定义symbolname
#定义symbolnamesymbolvalue
的- u选项删除C预处理器宏的任何初始定义,symbolname.逆的- d选择。
- u
不要在中间加空格D或U而且symbolname.不要在=的迹象。
例子:定义编译器指令
- ffilepath
filepath
要构建引擎应用程序,请使用客户端引擎选择。
对象的名称和位置墨西哥人配置文件。覆盖默认的编译器选择。有关使用非默认编译器的信息,请参见改变默认的编译器.filepath配置文件的名称和完整路径,指定为字符向量。
- g
添加符号信息并禁用优化构建的目标代码。用于调试。要使用优化进行调试,请添加- o选择。
- o
- h (elp)
显示帮助墨西哥人.从操作系统提示符使用。
-我路径名
路径名
增加了路径名添加到要搜索的文件夹列表# include文件。
# include
不要在中间加空格我而且路径名.
例子:指定包含文件的路径
- l库名- llibfolder- l库名
- llibfolder- l库名
libfolder
带有动态对象库的链接库名(可选)libfolder.
MATLAB的扩张库名:
库名. lib或自由库名. lib——Windows系统
. lib
自由
自由库名. dylib- Mac系统
. dylib
自由库名所以——Linux系统
所以
如果使用,- l选项必须在- l选择。当使用- l选项,您还必须设置运行时库路径,如设置运行时库路径.
不要在中间加空格l而且库名之间或l而且libfolder.
指定- l选项中包含小写字母l.
要链接静态库,请使用文件名输入参数.
例子:指定库文件的路径
-largeArrayDims(默认)-compatibleArrayDims
-largeArrayDims-使用MATLAB大数组处理API。这个API处理超过2的数组311的元素。在调用LAPACK或BLAS函数时必须使用此选项。默认选项。
显示但不执行墨西哥人将执行。
例子:预览构建命令
优化目标代码。使用此选项进行优化编译。
优化在默认情况下是启用的。时,将禁用优化- g选项出现时,没有显示- o选择。
用大写字母指定此选项O.
-outdir目录名
目录名
将所有输出文件放入文件夹中目录名.
例子:创建并链接到独立的对象文件
与产出mexname
mexname
覆盖默认的MEX文件命名机制。创建名为mexname使用适当的MEX文件扩展名。
例子:使用通配符组合源文件
设置朗
更改要构建的默认编译器朗墨西哥人的语言文件。使用此选项时,将忽略所有其他命令行选项。
沉默
抑制信息性消息。的墨西哥人命令仍然报告错误和警告,即使指定了沉默.
删除C预处理器宏的任何初始定义symbolname.(逆- d选择。)
不要在中间加空格U而且symbolname.
在详细模式下构建。在考虑了所有命令行参数之后,显示内部变量的值。显示每个编译和链接步骤的完整计算结果。用于排除编译器设置问题。
例子:显示详细的生成和故障排除信息
varname=varvalue
varname
varvalue
覆盖变量的默认设置varname.在考虑所有命令行参数后处理此选项。
例子:覆盖默认编译器开关选项.
C
c++
CPP
Fortran
语言,指定为这些值之一。
C编译器,包括c++。
c++编译器。
Fortran编译器。
您可以运行墨西哥人来自:
MATLAB命令窗口
Windows系统提示
Mac终端
Linux shell
对于MATLAB之外的命令行用法,墨西哥人程序位于指定的文件夹中[matlabroot ' / bin '].
[matlabroot ' / bin ']
MEX文件具有与平台相关的扩展名。您可以将不同平台的二进制MEX文件放在同一个文件夹中。
MEX文件平台相关扩展
Linux(64位)
mexa64
苹果的Mac(64位)
mexmaci64
Windows(64位)
mexw64
要标识MEX文件扩展名,请使用mexext函数。
mexext
使用墨西哥人为独立的MATLAB引擎和mat文件应用程序构建可执行文件,使用客户端引擎选择。
C/ c++矩阵库API|清晰的|电脑|dbmex|Fortran矩阵库API|inmem|loadlibrary|mex.getCompilerConfigurations|mexext|pcode|prefdir|系统
清晰的
电脑
dbmex
inmem
loadlibrary
mex.getCompilerConfigurations
pcode
prefdir
系统
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站,在可用的地方获得翻译的内容,并查看当地的活动和优惠。根据您的地理位置,我们建议您选择:.
您也可以从以下列表中选择网站:
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。
联系当地办事处
得到审判现在