主要内容

このページの翻訳は最新ではありませ。

梅克斯

MEX关节数またはエンジンエンジンのの

説明

梅克斯文件名matlabデータapi.で作成された1つ以上のc++ソースファイルをコンパイルして,現在のフォルダー内のバイナリ墨西哥人ファイルにリンクします。これらのアプリケーションを作成する方法の詳細については,C ++ MEXアプリケーションを参照してください。

C行列APIまたはFortran行列APIに基づいて墨西哥人ファイルを作成する場合,梅克斯文件名は1つ以上のc,c ++,fortranのソースファイルを-R2017B.API.でビルドします。MATLAB®API.オプションによってインターリーブされた複素数API (-R2018A)をを使するようにれ.mathworksでは,mexファイルを作物,mexのファイル更更,インターリーブされたを更を使するあるいはあるいはあるいはいいいいいいいいいいいいいいいいいいいあるいはいいあるいはいあるいはいあるいはあるいはいあるいはいあるいはいあるいはあるいはあるいはあるいはあるいはあるいはmx_has_Interleaved_Complex.,MATLABの墨西哥人関数におけるインターリーブされた複素数APIのサポートを参照してください。

C、c++、Fortranの各アプリケーションを操作する方法の詳細については,外部プログラミング言語およびシステムとMATLABの統合を参照してください。

梅克斯文件名API.option1……optionNは指定されたAPI.引数とオプションoption1……optionN引数を使使てビルドします。option1……optionN引数は,既定の梅克斯ビルド构成を补足またはオーバーライドします。

墨西哥人客户端引擎文件名matlabデータapi.で作成されたc++ソースファイルをスタンドアロンのMATLABエンジンアプリケーションにビルドします。詳細については,C ++用来エンジンAPIの绍介を参照してください。

C用のmatlabエンジンAPIMATLAB CAPIでででののデータデータのFortran用MatlabエンジンAPIMatlab Fortran APIでの垫ファイルデータの読み取りに基づいてアプリケーションを作成する場合,墨西哥人客户端引擎文件名-R2017B.API.を使用品してスタンドアロンをビルドします.matlabのの将しのバージョンではで,既定のAPI.オプションによってインターリーブされた複素数API (-R2018A)をを用するよう変更さます.mathworksでは,エンジンエンジンを作物してのを更更,インターリーブされたしを。

墨西哥人客户端引擎文件名API.option1……optionNは指定したAPI.引数とオプションoption1……optionN引数を使用してエンジンアプリケーションをビルドします。

墨西哥人设置(lは,mexファイルをビルドするに指定されたに対するコンパイラについての情情表示ます.matlabはサポートさ言语に既定のコンパイラをしししし。特色のの言语复ののがある言语。l,既定のコンパイラの変更C ++コンパイラの选択を参照してください。

Mex -setup -client引擎[lはエンジンアプリケーションをビルドするためのコンパイラを选択します。

すべて折りたたむ

matlabroot./ extern /例子フォルダーからソースコードの例をコピーします。

拷贝文件(fullfile (matlabroot,'extern''例子'墨西哥人的'探索.c'),“。”'F'

MEXファイルをビルドします。出力に,コンパイラ别无即用。

梅克斯-R2018Aexplore.c

テストします。

a = [1 3 5];b = [5 3 1];a =复合物(a,b);探索(a)
-  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  姓名:PRHS [0]尺寸:1x3类名称:DOUBLE --------------------------------------------(1,1)= 1 + 5i(1,2)= 3 + 3i(1,3)= 5 + 1i

単一个cプログラムyprime.cを墨西哥人ファイルにビルドします。

matlabroot./ extern /例子フォルダーからソースコードの例をコピーします。

拷贝文件(fullfile (matlabroot,'extern''例子'墨西哥人的“yprime.c”),“。”'F'

MEXファイルをビルドします。出力に,コンパイラ别无即用。

梅克斯yprime.c
使用“MinGW64 Compiler (C)”编译。墨西哥人成功完成。

テストします。

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

コンパイルやリンクのコマンドおよびトラブルシューティングに役立つその他の情報を表示するには,詳細モードを使用します。

梅克斯-v.-compatiblearraydims.yprime.c

出力には,プラットフォームおよびコンパイラ固有の情報が表示されます。

环境変数を使用して,コンパイラに渡す追加のオプションを指定します。

名称名称を确认ます。

  • Mingw.®macOS,およびlinux®ののコンパイラc ++コードをビルドするする合,CXXFLAGSを使使し。

  • MinGW,macOS,およびlinuxのコンパイラでcコードコードビルドするする合,cflags.を使使し。

  • 微软®Visual Studio®コンパイラコンパイラ场合,compflags.を使使し。

Visual Studioで墨西哥人ファイルをビルドする場合はc++ 17標準を指定します。

梅克斯compflags ='$ compflags -std = c ++ 17'yprime.c

字符串の区切り記号の使用に関するプラットフォーム別の詳細については,既定のコンパイラスイッチオプションのオーバーライドを参照してください。

- wallをを既存のコンパイラコンパイラフラグににしし,yprime.cMEXファイルをビルドします。値にスペース文字がれているのでのでて列ららばませんんなりません。

matlabプロンプトではmatlabの一击用符(

梅克斯-v.compflags ='$ complags -wall'yprime.c

gcc / g + +を基にしたMinGW-w64コンパイラでは,Linuxコンパイラフラグを使用します。次のコマンドのいずれかを選択してください。

梅克斯-v.CXXFLAGS = ' $ - wall CXXFLAGS 'yprime.c%C ++编译器梅克斯-v.CFLAGS = ' $ CFLAGS - wall’yprime.c%C编译器

视窗®コマンドプロンプトでは二重使用符(

梅克斯-v.compflags =“$ compflags-墙”yprime.c

macOSとlinux上のシェルシェルコマンドではは,一击引用符(

梅克斯-v.CFLAGS = ' $ CFLAGS - wall’yprime.c

墨西哥人ファイルの例fulltosparse.は,loadsparse。Ffulltosparse.f.の2つのFortranソースファイルで構成されます。この例を実行するには,サポートされるFortranコンパイラがシステムにインストールされている必要があります。

ソースファイルを現在のフォルダーにコピーします。

拷贝文件(fullfile (matlabroot,'extern''例子'“重新预订”'loadparse.f'),“。”'F')Copyfile(FullFile(Matlabroot,'extern''例子'“重新预订”'fulltosparse.f'),“。”'F'

fulltosparse.Mexファイルファイルをビルドししコマンドラインラインの最初のファイルファイルfulltosparse.f.なので,mexファイルの名前はfulltosparse.です。出力には,コンパイラ固有の情報が格納されます。

梅克斯-largeArraydims.fulltosparse.f.loadsparse。F
使用“Intel Visual Fortran Composer XE 2013 with Microsoft Visual Studio 2012”进行构建。墨西哥人成功完成。

テストします。

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

現在のフォルダー内のすべてのCソースファイルを墨西哥人ファイルmymex.にまとめます.mexファイルの名前を制御に-输出オプションを使使ます。

梅克斯-输出mymex.*。C

ビルドコマンドを実行せずにその详细をプレビューにはは-Nオプションオプション使使。出力に,プラットフォームおよびコンパイラ固の情格式されます。

梅克斯-Nyprime.c

ソースMEXファイルとは别にコンパイルするオブジェクトファイルにリンクすることができます。

MEXファイルの例FULLTOSPARSSは,2つのFORTRANソースファイルで成されます。fulltosparse.ファイルは,mexFunctionサブルーチンを含むゲートウェイルーチンです。loadparse.には,计算ルーチンが含まれています。

この例を実行するには,サポートされるFortranコンパイラがシステムにインストールされている必要があります。計算サブルーチンを現在のフォルダーにコピーします。

拷贝文件(fullfile (matlabroot,'extern''例子'“重新预订”'loadparse.f'),“。”'F'

サブルーチンをコンパイルし,オブジェクトファイルを别のフォルダーC:\ Objfilesに配置します。

mkdirC:\ Objfiles梅克斯-largeArraydims.-C-outdirC:\ Objfilesloadsparse。F
使用“Intel Visual Fortran Composer XE 2013 with Microsoft Visual Studio 2012”进行构建。墨西哥人成功完成。

ゲートウェイサブルーチンを现处于ののフォルダーにコピーししししてloadparse.オブジェクトファイルとリンクします。

拷贝文件(fullfile (matlabroot,'extern''例子'“重新预订”'fulltosparse.f'),“。”'F')MEX.-largeArraydims.fulltosparse.f.C:\ objfiles \ loadsparse.obj
使用“Intel Visual Fortran Composer XE 2013 with Microsoft Visual Studio 2012”进行构建。墨西哥人成功完成。

复素数ルーチンをを定理するためためmatlab lapackライブラリサブルーチンをインクルードするパス指定にはパス指定には,-一世オプションを使使ます。これらのサブルーチンを使使使には,mexファイルがヘッダーファイルfort.hにアクセスしなければなりんん。

matrixDividecoMplex.c.例を现处于ののフォルダーにコピーしし。

拷贝文件(fullfile (matlabroot,'extern''例子'“重新预订”'matrixdividececomple.c'),“。”'F'

“我”fort.hファイルへのパスを連結して-一世

ipath = [“我”fullfile(matlabroot,'extern''例子'“重新预订”));

Lapackライブラリファイルの名称前パスパスを表すとと数码管理ルーチンを含むファイルfort.cを作成します。

lapacklib = fullfile (matlabroot,'extern'“自由”、计算机('拱'),“微软”“libmwlapack.lib”);fortfile = fullfile (matlabroot,'extern''例子'“重新预订”“fort.c”);

Mexファイルをビルドします。

mex('-v''-R2017B'ipath,'matrixdividececomple.c',Fortfile,Lapacklib)

Windowsプラットフォームでmatrixdivide.c.のの例をビルドししこれにに-L.および-L.オプションオプション使使て,libmwlapack.libライブラリライブラリを指定しますライブラリファイルはmatlabroot.extern \ \ lib \微软\フォルダーにあります。

matrixdivide.c.例を现处于ののフォルダーにコピーしし。

拷贝文件(fullfile (matlabroot,'extern''例子'“重新预订”'matrixdivide.c'),“。”'F'

matlabroot.の値を取得します。

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

の値を取得します。

计算机('拱'
ans = win64

mexファイルをビルドするする,matlabroot.の値を梅克斯コマンドにコピーします。

梅克斯'-lc:\ program files \ matlab \ r2014a \ extern \ lib \ win64 \ microsoft'......-llibmwlapack.matrixdivide.c.

パスの程序文件にはスペースが含まれているので,文字をを用品

mxcreatecharmatrixfromstr.C.では,#定义シンボルspace_padding.を使内の字かどのしますはを设定しははを设定するは,但を-D.オプションを使用して墨西哥人ファイルをビルドします。

例を现处于ののフォルダーにコピーしし。

拷贝文件(fullfile (matlabroot,'extern''例子''mx''mxcreatecharmatrixfromstr.C'),“。”'F'

space_padding.命令を設定して,値の間にスペースを追加します。

梅克斯mxcreatecharmatrixfromstr.C.-DSPACE_PADDING
建立“Mingw64编译器C”。墨西哥人成功完成。

Engwindemo.c.エンジンの例を现处于のフォルダーにコピーます。

拷贝文件(fullfile (matlabroot,'extern''例子'“eng_mat”“engwindemo.c”),“。”'F'
梅克斯-客户引擎Engwindemo.c.

Windowsプラットフォームプラットフォーム使用ししいるいる合,最初にmatlabをcomサーバーとして登录しばなりんん。comサーバーとしてのmatlabの登录を参照してください。

例を実行します。

!Engwindemo.
梅克斯设置

matlabは金宝app支持和兼容的编译器のリストに基づいて,お使いのバージョンおよびシステム用のオプションを表示します。

梅克斯リンクコマンドにオプションをを加するには,linkflags.コマンドラインオプションを使用します。でたとえば,窗口mymex.c.をビルドするときに実行可能ファイルの環境を指定するには,次のように入力します。

梅克斯-v.LINKFLAGS = ' $ LINKFLAGS /子系统:windows 'mymex.c.

入力数

すべて折りたたむ

名前とファイル拡張子を含む1つ以上のファイル名。字符串または文字ベクトルとして指定します。ファイルが現在のフォルダーにない場合は,ファイルへの絶対パスを指定します。

ファイル名には,以下を任意に組み合わせることができます。

  • C,C ++またはFORTRAN言语言语のソース

  • 金宝app®s函数ファイル

  • オブジェクトファイル

  • スタティックライブラリファイル。文件名,-L.libname.オプションを使使ます。

文件名。与产出的オプションを使使ます。

MATLABエディターエディター使使使ソースソースコードを作物作物成し。Microsoft Visual StudioまたはXcode.などの综合开发环境(IDE)をを使用する料,梅克斯コマンドを使用するか,mexスクリプトオプションによるカスタムビルドのガイドラインに従うことができます。

MATLABは,コンパイラがインストールされている場合には,文件名分数の言语に基础,自动的にコンパイラを选択ます。

データ型:char

リリース别无のC行列APIまたはFortran行列APIをもつリンク。次の値のいずれかとして指定します。これらのオプションを組み合わせないでください。

このオプションは,matlabデータapi.をを用するmexファイルまたはエンジンエンジンアプリケーションに使しないでください。

API. 説明

-R2017B.(既定)

以下でビルドされます。

  • MATLAB R2017b以前のCおよびFortran行列APIの機能が含まれている実数/虚数分離型複素数API。

  • 要素数が231.-1を超える配列を扱う大规模配列ハンドリングapi。

  • グラフィックスオブジェクトのハンドルを双倍的ではなく对象として扱う。

MATLABの将来のバージョンでは,既定のAPI.オプションによってインターリーブされた複素数API (-R2018A)を使れます.Mathworksでは,アプリケーションを作品し,あるいはされし,インターリーブされし,インターリーブするを推奨しますするするを推奨てますするするすることあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはいいあるいはいいあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはあるいはlmx_has_Interleaved_Complex.,MATLABの墨西哥人関数におけるインターリーブされた複素数APIのサポートを参照してください。

-R2018A

以下でビルドされます。

MATLAB R2018Aで,インターリーブされた复素たたによってされれたたにはファイルをはは,matlab r2018a更新3を使用しなけれなりなりません。

-largeArraydims.

以下でビルドされます。

  • 幂数/分数分类

  • 大規模配列ハンドリングAPI

  • グラフィックスオブジェクトのハンドルを双倍的ではなく对象としてとして。ハンドルハンドル双倍的として扱うには,このオプションを-dmex_double_handle.と结合わせ。

-compatiblearraydims.

以下でビルドされます。

  • 幂数/分数分类

  • 配列の要素数を231.7.2版本1に制限するの配列ハンドリングAPI

  • グラフィックスオブジェクトのハンドルを双倍的ではなく对象としてとして。ハンドルハンドル双倍的として扱うには,このオプションを-dmex_double_handle.と结合わせ。

LAPACK関数または巴拉斯関数を呼び出す場合、-compatiblearraydims.オプションを使用しないでください。

C mex s-functionのみのみで既定の。

例:MEX -R2018A探索

ビルドはのしします以,指示があるを除き,任意のプラットフォームでの顺序でできできできできできできできでき指定できできできでき指定できできでき指定指定できでき指定指定できでき指定指定できでき指定指定指定できでき指定指定できでき指定指定指定でき指定指定指定できでき指定指定できできできできできできできでき指定指定指定指定指定指定できでき指定指定指定指定でき指定指定指定でき指定指定できできののしししししししし指定指定指定のしし指定指定指定しししし指定指定指定指定指定指定指定指定の指定指定指定指定指定指定ははははははははは指定はは指定ははは指定ははは指定ははは指定は指定はは指定は指定指定は指定指定は指定指定指定指定指定しししし指定指定指定指定指定指定指定指定指定指定しししし指定

オプション 説明

rspfile

Windows rspファイルファイル使使ます。非非ラインをはテキストです非。

-C

オブジェクトファイルのみをコンパイルします。バイナリ墨西哥人ファイルはビルドしません。

客户端引擎

エンジンアプリケーションをビルドします。

-D.symbolName.
-D.symbolName.symbolValue.
-UsymbolName.

-D.オプションは,Cプリプロセッサマクロを定义します。ソースファイル内での以下と等価です。

  • #定义symbolName.

  • #定义symbolName.symbolValue.

-Uオプションは,cプリプロセッサマクロsymbolName.ののすべての初初定义定义削除し(-D.オプションの逆)。

DまたはUsymbolName.との间にスペースを追加しないでください。記号の前後にスペースを追加しないでください。

例:コンパイラ命令を定义

-F文件路径

既定のコンパイラ選択をオーバーライドします。文件路径は字符串または文字ベクトルとして指定されるコンフィギュレーションファイルの名前および絶対パスです。既定以外のコンパイラの詳細については,既定のコンパイラの変更を参照してください。

-F客户端引擎オプションを使使てください。

-G

デバッグに使使ます,ビルドされたオブジェクト。

-帮助]

梅克斯のヘルプを表示します。オペレーティングシステムのプロンプトから使用します。

-一世pathname.

# includeファイルを検索するフォルダーのリストへpathname.を追加します。

pathname.の间にスペースを追加しないでください。

例:インクルードファイルへのパスを指定する

-L.libname.
-L.libfolder.-L.libname.

ダイナミックオブジェクトライブラリlibname.とリンクします。オプションオプションでlibfolder.を指定できます。

matlabはlibname.を以下のファイルに开着。

  • libname..lib.またはliblibname..lib.- Windowsシステム

  • liblibname.。丁基- - - - - -macOSシステム

  • liblibname.。所以——Linuxシステム

使用するする合,-L.オプションは-L.オプションオプションの前に置か置かなけれなりませませませませシステムシステムシステムシステムシステムmacOSシステムで-L.オプションを使用する合成は,ランタイムライブラリパスの设定で説明されているとおり,ランタイムライブラリのパスも設定しなければなりません。

llibname.の间,またはllibfolder.の间にスペースを追加しないでください。

-L.オプションは小文库のlで指定します。

スタティックスタティックライブラリをリンクリンクするには,文件名入力数を使使し。

例:ライブラリファイルへのパスを指定する

-N

梅克斯が実行するコマンドを表示します。ただし,実行はしません。

例:ビルドコマンドをプレビューする

-O

オブジェクトコードを最適化します。最適化を使用してコンパイルするには,このオプションを使用します。最適化は既定で有効になっています。

このオプションは大文字のOで指定します。

-outdirdir

すべての出力ファイルをフォルダーdirへ保存します。

例:个别个别のオブジェクトファイルファイルへの作作作作作作后

-输出mexname

既定のmexファイルファイル名目mexnameという名前のバイナリ墨西哥人ファイルを作成します。

例:ワイルドカードを使用したソースファイルの結合

设置l

l言語墨西哥人ファイルまたはエンジンアプリケーションをビルドするように,既定のコンパイラを変更します。このオプションを使用すると,梅克斯はその他のコマンドラインオプションをすべて無視します。

沉默

ををメッセージメッセージメッセージを非表示しししにしし梅克斯コマンドは,沉默を指定した场合でもエラーと警告を报告します。

-UsymbolName.

cプリプロセッサマクロのsymbolName.ののすべての初初定义定义削除し(-D.オプションの逆)。

UsymbolName.の间にスペースを追加しないでください。

-v.

详细モードモードビルドします。すべてのコマンドライン引がれた后,内部内部リンクのステップのますをの表示のの评価を表示します。使用します。

例:ビルドとトラブルシューティングの詳細情報の表示

varnamevarvalue

環境変数varnameに値を追加します。コマンドライン引数がすべて処理された後に,このオプションが処理されます。

例:コンパイラオプションの追加
既定のコンパイラスイッチオプションのオーバーライド

。

C

Cコンパイラ(C ++を含む)

c++またはCPP

C ++コンパイラ

Fortran.

Fortranコンパイラ

ヒント

  • 梅克斯はは下の场所から行できます。

    • matlabコマンドウィンドウ

    • Windowsシステムプロンプト

    • macOSターミナル

    • Linuxシェル

    MATLAB户外のコマンドラインラインライン使使使する合书,梅克斯プログラムプログラム,Unixの[matlabroot'/ bin']およびWindowsの[matlabroot'\ bin \ win64']で指定されたフォルダーに格納されています。

  • MEXファイルの拡张子はプラットフォームによって异なります。さまざまなプラットフォーム用のバイナリmexファイルを同じフォルダーにますますファイル同じ拡にでき.mexファイルの拡张子を识别するは,关联Mexext.を使用して。

    墨西哥人ファイルのプラットフォーム依存の拡張子

    プラットフォーム バイナリ墨西哥人ファイルの拡張子

    Linux(64ビット)

    mexa64

    苹果Mac(64ビット)

    mexmaci64

    Windows(64ビット)

    mexw64

  • 梅克斯をを用してスタンドアロンアロンmatlabエンジンアプリケーションの実行はファイルをビルドするには,客户端引擎オプションを使使てください。

  • 梅克斯コマンドは,二重引用符()を含むフォルダー名をサポートしません。

R2006Aより前に导入