私は自分のc++コードを使ってmatlabでs-functionブロックを作成しようとしています。次のmexopts.batファイルを使用しています。
@エコーオフ
MATLAB =%MATLAB%を設定します
PATH =%PATH%; c:\ cygwin\binを設定します
MW_TARGET_ARCH=win64を設定します
COMPILER =x86_64-w64-mingw32-g++を設定します
COMPFLAGS = -c -fexceptions "-I%MATLAB%\ extern\include"を設定します
OPTIMFLAGS=-O3を設定します
DEBUGFLAGS =-g-Wallを設定します
NAME_OBJECT=-oを設定します
PRELINK_CMDS1 = echo EXPORTS> mex.def&echo mexFunction>>mex.defを設定します
LIBLOC = "%MATLAB%\ bin\win64"を設定します
LINKER =x86_64-w64-mingw32-g++を設定します
set LINKFLAGS = -static-libgcc -shared mex.def -L%LIBLOC%-static-libstdc ++
LINKFLAGSPOST = -lmex -lmx -lmwlapack -lmwblas-lstdc++を設定します
LINKOPTIMFLAGS=-O3を設定します
LINKDEBUGFLAGS =-g-Wallを設定します
LINK_FILE=を設定します
LINK_LIB=を設定します
set NAME_OUTPUT = -o "%OUTDIR %% MEX_NAME %% MEX_EXT%"
RSP_FILE_INDICATOR=を設定します
POSTLINK_CMDS1 =delmex.defを設定します
'mex'関数を使用してmatlabからサンプルmexfunctionファイルを正常にコンパイルできますが、s-functionをコンパイルしようとすると(matlabでサンプルファイルを取得しました)、次のエラーが発生します
C:\Program Files\MATLAB\R2012a\simulink\include/simstruc.h:357:3: error: #error Must define one of RT, NRT, MATLAB_MEX_FILE, SL_INTERNAL, or FIPXT_SHARED_MODULE
C:\Program Files\MATLAB\R2012a\simulink\include/simstruc.h:467:78: fatal error: rt_matrx.h: No such file or directory
compilation terminated.
私はc++ファイルが正しいと確信しています、coz私はmatlabの例からそれらを取りました