現在この質問をフォロー中です
- フォローしているコンテンツ フィードに更新が表示されます。
- コミュニケーション基本設定に応じて電子メールを受け取ることができます。
How to manually edit MatLab Coder .mex-file code to support 64bit indexing
28 ビュー (過去 30 日間)
古いコメントを表示
Hey,
I have a problem that mex files generated by MatLab Coder only supports 32bit indexing, which is the reason my program gets an error when the input of the bottleneck mex function exceeds an input boolean matrix which has more than 2^31 elements.
I know that mex-files support 64bit indexing when they are hand written, but since I am not comfortable with c or c++, I wonder if there is a way, and if so how, to manually correct this at the end of the coder when it shows me the code it generated?
I read that i shoukld have to replace the 'int32_T' by 'size_t' but thats not all, I would also need to replace the the constructors 'coder::array<T, 1U>' with C MEX API... and thats the point where my knowledge ends and I would need some help about what to do exactly and how to do it.
May be someone coukld help me with that.
Best regards and many thanks in advance
採用された回答
Nitin Kapgate
2020 年 12 月 18 日
編集済み: Nitin Kapgate
2020 年 12 月 18 日
So you will need to manually change the codein C/C++ files.
You can refer to the guide to enable support for 64-bit indexing in MEX files using compatibleArrayDims flag in mex command.
2 件のコメント
Marc Laub
2020 年 12 月 23 日
編集済み: Marc Laub
2020 年 12 月 23 日
I first tried to recompile the coder code with matlab again, just to be sure that it will work. Untill this would not work I should not be concerned about changing the code because I cant compile it.
So I tried it but i got tonnes of error messages which I did understand:
>> mex -v *.cpp
Verbose mode is on.
... Looking for compiler 'MinGW64 Compiler (C++)' ...
... Looking for environment variable 'MW_MINGW64_LOC' ...Yes ('C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset').
... Looking for file 'C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++.exe' ...Yes.
... Looking for folder 'C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset' ...Yes.
... Looking for environment variable 'MW_MINGW64_LOC' ...Yes ('C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset').
... Executing command 'C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++ -dumpmachine' ...Yes ('x86_64-w64-mingw32').
... Looking for environment variable 'MW_MINGW64_LOC' ...Yes ('C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset').
... Executing command 'C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++ -dumpversion' ...Yes ('6.3.0').
Found installed compiler 'MinGW64 Compiler (C++)'.
Set PATH = C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin;C:\Program Files\MATLAB\R2020a\extern\include\win64;C:\Program Files\MATLAB\R2020a\extern\include;C:\Program Files\MATLAB\R2020a\simulink\include;C:\Program Files\MATLAB\R2020a\lib\win64;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\MATLAB\R2020a\runtime\win64;C:\Program Files\MATLAB\R2020a\bin;C:\Users\mlaub\AppData\Local\Microsoft\WindowsApps;
Set INCLUDE = C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\include;C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\lib\gcc\x86_64-w64-mingw32\6.3.0\include\c++;C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\lib\gcc\x86_64-w64-mingw32\6.3.0\include;C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\lib\gcc\x86_64-w64-mingw32\6.3.0\include\c++\x86_64-w64-mingw32;C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\lib\gcc\x86_64-w64-mingw32\6.3.0\include\c++\backward;C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\x86_64-w64-mingw32\include;C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\include;C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\lib\gcc\x86_64-w64-mingw32\6.3.0\include\c++;C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\lib\gcc\x86_64-w64-mingw32\6.3.0\include;C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\lib\gcc\x86_64-w64-mingw32\6.3.0\include\c++\x86_64-w64-mingw32;C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\lib\gcc\x86_64-w64-mingw32\6.3.0\include\c++\backward;C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\x86_64-w64-mingw32\include;
Set LIB = C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\lib;;C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\lib;;
Set MW_TARGET_ARCH = win64;win64;
Set LIBPATH = C:\Program Files\MATLAB\R2020a\extern\lib\win64;C:\Program Files\MATLAB\R2020a\extern\lib\win64;
Options file details
-------------------------------------------------------------------
Compiler location: C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset
Options file: C:\Users\mlaub\AppData\Roaming\MathWorks\MATLAB\R2020a\mex_C++_win64.xml
CMDLINE2 : C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++ -m64 -Wl,--no-undefined -shared -static -s -Wl,"C:\Program Files\MATLAB\R2020a/extern/lib/win64/mingw64/exportsmexfileversion.def" C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para_mexutil.obj C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\rt_nonfinite.obj C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_mex.obj C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\cpp_mexapi_version.obj -L"C:\Program Files\MATLAB\R2020a\extern\lib\win64\mingw64" -llibmx -llibmex -llibmat -lm -llibmwlapack -llibmwblas -llibMatlabDataArray -llibMatlabEngine -o grain_struct_grower_para.mexw64
CXX : C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++
COMPILER : C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++
DEFINES : -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -m64 -DMATLAB_MEX_FILE
MATLABMEX : -DMATLAB_MEX_FILE
CFLAGS : -fexceptions -fno-omit-frame-pointer
CXXFLAGS : -fexceptions -fno-omit-frame-pointer -std=c++11
INCLUDE : -I"C:\Program Files\MATLAB\R2020a/extern/include" -I"C:\Program Files\MATLAB\R2020a/simulink/include"
CXXOPTIMFLAGS : -O2 -fwrapv -DNDEBUG
CXXDEBUGFLAGS : -g
LDXX : C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++
LINKER : C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++
LDFLAGS : -m64 -Wl,--no-undefined
LDTYPE : -shared -static
LINKEXPORT : -Wl,"C:\Program Files\MATLAB\R2020a/extern/lib/win64/mingw64/mexFunction.def"
LINKEXPORTVER : -Wl,"C:\Program Files\MATLAB\R2020a/extern/lib/win64/mingw64/exportsmexfileversion.def"
LIBLOC : C:\Program Files\MATLAB\R2020a\extern\lib\win64\mingw64
LINKLIBS : -L"C:\Program Files\MATLAB\R2020a\extern\lib\win64\mingw64" -llibmx -llibmex -llibmat -lm -llibmwlapack -llibmwblas -llibMatlabDataArray -llibMatlabEngine
LDOPTIMFLAGS : -s
LDDEBUGFLAGS : -g
OBJEXT : .obj
LDEXT : .mexw64
SETENV : set COMPILER=C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\gcc
set CXXCOMPILER=C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++
set COMPFLAGS=-c -fexceptions -fno-omit-frame-pointer -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -m64 -DMATLAB_MEX_FILE -DMATLAB_MEX_FILE
set CXXCOMPFLAGS=-c -fexceptions -fno-omit-frame-pointer -std=c++11 -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -m64 -DMATLAB_MEX_FILE -DMATLAB_MEX_FILE
set OPTIMFLAGS=-O2 -fwrapv -DNDEBUG
set DEBUGFLAGS=-g
set LINKER=C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\gcc
set CXXLINKER=C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++
set LINKFLAGS=-m64 -Wl,--no-undefined -shared -static -L"C:\Program Files\MATLAB\R2020a\extern\lib\win64\mingw64" -llibmx -llibmex -llibmat -lm -llibmwlapack -llibmwblas -llibMatlabDataArray -llibMatlabEngine -Wl,"C:\Program Files\MATLAB\R2020a/extern/lib/win64/mingw64/mexFunction.def"
set LINKDEBUGFLAGS=-g
set NAME_OUTPUT= -o "%OUTDIR%%MEX_NAME%%MEX_EXT%"
MINGWROOT : C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset
MINGWTARGET : x86_64-w64-mingw32
VERSION : 6.3.0
MATLABROOT : C:\Program Files\MATLAB\R2020a
ARCH : win64
SRC : "C:\Users\mlaub\Desktop\Promo_matlab\linked_grains_model2_readyCPP\codegen\mex\grain_struct_grower_para\grain_struct_grower_para.cpp";"C:\Users\mlaub\Desktop\Promo_matlab\linked_grains_model2_readyCPP\codegen\mex\grain_struct_grower_para\grain_struct_grower_para_mexutil.cpp";"C:\Users\mlaub\Desktop\Promo_matlab\linked_grains_model2_readyCPP\codegen\mex\grain_struct_grower_para\rt_nonfinite.cpp";"C:\Users\mlaub\Desktop\Promo_matlab\linked_grains_model2_readyCPP\codegen\mex\grain_struct_grower_para\_coder_grain_struct_grower_para_info.cpp";"C:\Users\mlaub\Desktop\Promo_matlab\linked_grains_model2_readyCPP\codegen\mex\grain_struct_grower_para\_coder_grain_struct_grower_para_mex.cpp";"C:\Program Files\MATLAB\R2020a\extern\version\cpp_mexapi_version.cpp"
OBJ : C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj;C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para_mexutil.obj;C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\rt_nonfinite.obj;C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj;C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_mex.obj;C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\cpp_mexapi_version.obj
OBJS : C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para_mexutil.obj C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\rt_nonfinite.obj C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_mex.obj C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\cpp_mexapi_version.obj
SRCROOT : C:\Users\mlaub\Desktop\Promo_matlab\linked_grains_model2_readyCPP\codegen\mex\grain_struct_grower_para\grain_struct_grower_para
DEF : C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.def
EXP : "grain_struct_grower_para.exp"
LIB : "grain_struct_grower_para.lib"
EXE : grain_struct_grower_para.mexw64
ILK : "grain_struct_grower_para.ilk"
MANIFEST : "grain_struct_grower_para.mexw64.manifest"
TEMPNAME : grain_struct_grower_para
EXEDIR :
EXENAME : grain_struct_grower_para
OPTIM : -O2 -fwrapv -DNDEBUG
LINKOPTIM : -s
CMDLINE1_0 : C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++ -c -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -m64 -DMATLAB_MEX_FILE -I"C:\Program Files\MATLAB\R2020a/extern/include" -I"C:\Program Files\MATLAB\R2020a/simulink/include" -fexceptions -fno-omit-frame-pointer -std=c++11 -O2 -fwrapv -DNDEBUG "C:\Users\mlaub\Desktop\Promo_matlab\linked_grains_model2_readyCPP\codegen\mex\grain_struct_grower_para\grain_struct_grower_para.cpp" -o C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj
CMDLINE1_1 : C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++ -c -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -m64 -DMATLAB_MEX_FILE -I"C:\Program Files\MATLAB\R2020a/extern/include" -I"C:\Program Files\MATLAB\R2020a/simulink/include" -fexceptions -fno-omit-frame-pointer -std=c++11 -O2 -fwrapv -DNDEBUG "C:\Users\mlaub\Desktop\Promo_matlab\linked_grains_model2_readyCPP\codegen\mex\grain_struct_grower_para\grain_struct_grower_para_mexutil.cpp" -o C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para_mexutil.obj
CMDLINE1_2 : C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++ -c -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -m64 -DMATLAB_MEX_FILE -I"C:\Program Files\MATLAB\R2020a/extern/include" -I"C:\Program Files\MATLAB\R2020a/simulink/include" -fexceptions -fno-omit-frame-pointer -std=c++11 -O2 -fwrapv -DNDEBUG "C:\Users\mlaub\Desktop\Promo_matlab\linked_grains_model2_readyCPP\codegen\mex\grain_struct_grower_para\rt_nonfinite.cpp" -o C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\rt_nonfinite.obj
CMDLINE1_3 : C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++ -c -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -m64 -DMATLAB_MEX_FILE -I"C:\Program Files\MATLAB\R2020a/extern/include" -I"C:\Program Files\MATLAB\R2020a/simulink/include" -fexceptions -fno-omit-frame-pointer -std=c++11 -O2 -fwrapv -DNDEBUG "C:\Users\mlaub\Desktop\Promo_matlab\linked_grains_model2_readyCPP\codegen\mex\grain_struct_grower_para\_coder_grain_struct_grower_para_info.cpp" -o C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj
CMDLINE1_4 : C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++ -c -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -m64 -DMATLAB_MEX_FILE -I"C:\Program Files\MATLAB\R2020a/extern/include" -I"C:\Program Files\MATLAB\R2020a/simulink/include" -fexceptions -fno-omit-frame-pointer -std=c++11 -O2 -fwrapv -DNDEBUG "C:\Users\mlaub\Desktop\Promo_matlab\linked_grains_model2_readyCPP\codegen\mex\grain_struct_grower_para\_coder_grain_struct_grower_para_mex.cpp" -o C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_mex.obj
CMDLINE1_5 : C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++ -c -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -m64 -DMATLAB_MEX_FILE -I"C:\Program Files\MATLAB\R2020a/extern/include" -I"C:\Program Files\MATLAB\R2020a/simulink/include" -fexceptions -fno-omit-frame-pointer -std=c++11 -O2 -fwrapv -DNDEBUG "C:\Program Files\MATLAB\R2020a\extern\version\cpp_mexapi_version.cpp" -o C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\cpp_mexapi_version.obj
-------------------------------------------------------------------
Building with 'MinGW64 Compiler (C++)'.
C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++ -c -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -m64 -DMATLAB_MEX_FILE -I"C:\Program Files\MATLAB\R2020a/extern/include" -I"C:\Program Files\MATLAB\R2020a/simulink/include" -fexceptions -fno-omit-frame-pointer -std=c++11 -O2 -fwrapv -DNDEBUG "C:\Users\mlaub\Desktop\Promo_matlab\linked_grains_model2_readyCPP\codegen\mex\grain_struct_grower_para\grain_struct_grower_para.cpp" -o C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj
C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++ -c -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -m64 -DMATLAB_MEX_FILE -I"C:\Program Files\MATLAB\R2020a/extern/include" -I"C:\Program Files\MATLAB\R2020a/simulink/include" -fexceptions -fno-omit-frame-pointer -std=c++11 -O2 -fwrapv -DNDEBUG "C:\Users\mlaub\Desktop\Promo_matlab\linked_grains_model2_readyCPP\codegen\mex\grain_struct_grower_para\grain_struct_grower_para_mexutil.cpp" -o C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para_mexutil.obj
C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++ -c -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -m64 -DMATLAB_MEX_FILE -I"C:\Program Files\MATLAB\R2020a/extern/include" -I"C:\Program Files\MATLAB\R2020a/simulink/include" -fexceptions -fno-omit-frame-pointer -std=c++11 -O2 -fwrapv -DNDEBUG "C:\Users\mlaub\Desktop\Promo_matlab\linked_grains_model2_readyCPP\codegen\mex\grain_struct_grower_para\rt_nonfinite.cpp" -o C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\rt_nonfinite.obj
C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++ -c -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -m64 -DMATLAB_MEX_FILE -I"C:\Program Files\MATLAB\R2020a/extern/include" -I"C:\Program Files\MATLAB\R2020a/simulink/include" -fexceptions -fno-omit-frame-pointer -std=c++11 -O2 -fwrapv -DNDEBUG "C:\Users\mlaub\Desktop\Promo_matlab\linked_grains_model2_readyCPP\codegen\mex\grain_struct_grower_para\_coder_grain_struct_grower_para_info.cpp" -o C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj
C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++ -c -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -m64 -DMATLAB_MEX_FILE -I"C:\Program Files\MATLAB\R2020a/extern/include" -I"C:\Program Files\MATLAB\R2020a/simulink/include" -fexceptions -fno-omit-frame-pointer -std=c++11 -O2 -fwrapv -DNDEBUG "C:\Users\mlaub\Desktop\Promo_matlab\linked_grains_model2_readyCPP\codegen\mex\grain_struct_grower_para\_coder_grain_struct_grower_para_mex.cpp" -o C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_mex.obj
C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++ -c -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -m64 -DMATLAB_MEX_FILE -I"C:\Program Files\MATLAB\R2020a/extern/include" -I"C:\Program Files\MATLAB\R2020a/simulink/include" -fexceptions -fno-omit-frame-pointer -std=c++11 -O2 -fwrapv -DNDEBUG "C:\Program Files\MATLAB\R2020a\extern\version\cpp_mexapi_version.cpp" -o C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\cpp_mexapi_version.obj
C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++ -m64 -Wl,--no-undefined -shared -static -s -Wl,"C:\Program Files\MATLAB\R2020a/extern/lib/win64/mingw64/exportsmexfileversion.def" C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para_mexutil.obj C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\rt_nonfinite.obj C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_mex.obj C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\cpp_mexapi_version.obj -L"C:\Program Files\MATLAB\R2020a\extern\lib\win64\mingw64" -llibmx -llibmex -llibmat -lm -llibmwlapack -llibmwblas -llibMatlabDataArray -llibMatlabEngine -o grain_struct_grower_para.mexw64
Error using mex
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x29): undefined reference
to `emlrtAlias'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x35): undefined reference
to `emlrtAlias'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x6b): undefined reference
to `emlrtCheckBuiltInR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x74): undefined reference
to `emlrtMxGetData'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x80): undefined reference
to `emlrtDestroyArray'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x89): undefined reference
to `emlrtDestroyArray'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x92): undefined reference
to `emlrtDestroyArray'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0xd0): undefined reference
to `emlrtAlias'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0xdc): undefined reference
to `emlrtAlias'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x112): undefined
reference to `emlrtCheckBuiltInR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x11b): undefined
reference to `emlrtMxGetData'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x128): undefined
reference to `emlrtDestroyArray'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x131): undefined
reference to `emlrtDestroyArray'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x13a): undefined
reference to `emlrtDestroyArray'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x17b): undefined
reference to `emlrtCreateNumericArray'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x189): undefined
reference to `emlrtMxSetData'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x19e): undefined
reference to `emlrtSetDimensions'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x1aa): undefined
reference to `emlrtAssign'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x288): undefined
reference to `omp_in_parallel'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x297): undefined
reference to `emlrtEnterParallelRegion'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x2a7): undefined
reference to `omp_get_thread_num'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x2b5): undefined
reference to `emlrtAllocTLS'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x48f): undefined
reference to `emlrtHeapReferenceStackEnterFcnR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x514): undefined
reference to `emlrtSizeMulR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x52a): undefined
reference to `emlrtSizeMulR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x567): undefined
reference to `emlrtMallocMex'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x5a0): undefined
reference to `emlrtMallocMex'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x5b9): undefined
reference to `emlrtFreeMex'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x66b): undefined
reference to `muDoubleScalarIsNaN'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x679): undefined
reference to `muDoubleScalarIsNaN'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x724): undefined
reference to `muDoubleScalarPower'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x788): undefined
reference to `emlrtDynamicBoundsCheckR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x819): undefined
reference to `emlrtSubAssignSizeCheck1dR2017a'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x88e): undefined
reference to `emlrtDynamicBoundsCheckR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x92b): undefined
reference to `emlrtDynamicBoundsCheckR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0xa86): undefined
reference to `muDoubleScalarAbs'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0xb2a): undefined
reference to `emlrtDynamicBoundsCheckR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0xb76): undefined
reference to `muDoubleScalarAbs'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0xbe2): undefined
reference to `emlrtDynamicBoundsCheckR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0xc2f): undefined
reference to `emlrtSizeEqCheck1DR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0xcbc): undefined
reference to `emlrtDynamicBoundsCheckR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0xd03): undefined
reference to `muDoubleScalarAbs'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0xd75): undefined
reference to `emlrtDynamicBoundsCheckR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0xdc1): undefined
reference to `emlrtSizeEqCheck1DR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0xefe): undefined
reference to `emlrtDynamicBoundsCheckR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0xf43): undefined
reference to `muDoubleScalarAbs'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x1120): undefined
reference to `emlrtDynamicBoundsCheckR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x1163): undefined
reference to `muDoubleScalarAbs'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x1242): undefined
reference to `emlrtSizeEqCheck1DR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x129f): undefined
reference to `emlrtSubAssignSizeCheck1dR2017a'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x12f1): undefined
reference to `emlrtDynamicBoundsCheckR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x13ff): undefined
reference to `emlrtSizeMulR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x1415): undefined
reference to `emlrtSizeMulR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x146c): undefined
reference to `emlrtMallocMex'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x156b): undefined
reference to `muDoubleScalarIsNaN'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x1579): undefined
reference to `muDoubleScalarIsNaN'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x168b): undefined
reference to `emlrtDynamicBoundsCheckR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x176a): undefined
reference to `emlrtDynamicBoundsCheckR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x17cc): undefined
reference to `emlrtHeapReferenceStackLeaveFcnR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x17e6): undefined
reference to `emlrtFreeMex'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x1896): undefined
reference to `emlrtErrorWithMessageIdR2018a'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x18a4): undefined
reference to `emlrtBreakCheckR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x18b2): undefined
reference to `omp_in_parallel'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x18c8): undefined
reference to `emlrtExitParallelRegion'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x18d8): undefined
reference to `muDoubleScalarIsNaN'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x1947): undefined
reference to `muDoubleScalarIsNaN'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x1a5c): undefined
reference to `emlrtErrorWithMessageIdR2018a'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x1a71): undefined
reference to `emlrtMallocMex'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x1afd): undefined
reference to `emlrtFreeMex'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x1b32): undefined
reference to `muDoubleScalarPower'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x1b6a): undefined
reference to `emlrtFreeMex'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x1c3b): undefined
reference to `emlrtHeapAllocationErrorR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x1c65): undefined
reference to `emlrtHeapAllocationErrorR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x1c7a): undefined
reference to `emlrtHeapAllocationErrorR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x1c8f): undefined
reference to `emlrtHeapAllocationErrorR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x1dfe): undefined
reference to `emlrtFreeMex'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x1f83): undefined
reference to `emlrtAlias'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x1fa2): undefined
reference to `emlrtAlias'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x1fc1): undefined
reference to `emlrtAlias'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x1fe0): undefined
reference to `emlrtAliasP'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x1fff): undefined
reference to `emlrtAliasP'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x201e): undefined
reference to `emlrtAliasP'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x203e): undefined
reference to `emlrtAliasP'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x205e): undefined
reference to `emlrtAliasP'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x207e): more undefined
references to `emlrtAliasP' follow
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x209e): undefined
reference to `emlrtAlias'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x20ca): undefined
reference to `emlrtAlias'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x20d6): undefined
reference to `emlrtAlias'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x210f): undefined
reference to `emlrtCheckBuiltInR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x2118): undefined
reference to `emlrtMxGetData'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x2125): undefined
reference to `emlrtDestroyArray'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x212e): undefined
reference to `emlrtDestroyArray'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x2137): undefined
reference to `emlrtDestroyArray'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x2140): undefined
reference to `emlrtAliasP'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x2160): undefined
reference to `emlrtAliasP'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x2180): undefined
reference to `emlrtAliasP'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x21a0): undefined
reference to `emlrtAliasP'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x233e): undefined
reference to `emlrtEnterRtStackR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x2346): undefined
reference to `emlrtLeaveRtStackR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x2352): undefined
reference to `emlrtDestroyRootTLS'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x235e): undefined
reference to `emlrtExitTimeCleanup'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x23a6): undefined
reference to `emlrtGetBreakCheckFlagAddressR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x23c8): undefined
reference to `emlrtClearAllocCountR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x23d0): undefined
reference to `emlrtEnterRtStackR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x23dc): undefined
reference to `emlrtFirstTimeR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x23e1): undefined
reference to `omp_in_parallel'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x23ec): undefined
reference to `emlrtEnterParallelRegion'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x23f1): undefined
reference to `omp_in_parallel'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x23fc): undefined
reference to `emlrtEnterParallelRegion'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x2417): undefined
reference to `omp_get_max_threads'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x2420): undefined
reference to `omp_in_parallel'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x242b): undefined
reference to `emlrtExitParallelRegion'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x2430): undefined
reference to `omp_in_parallel'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x243b): undefined
reference to `emlrtExitParallelRegion'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x247f): undefined
reference to `omp_in_parallel'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x248a): undefined
reference to `emlrtEnterParallelRegion'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x248f): undefined
reference to `omp_in_parallel'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x249a): undefined
reference to `emlrtEnterParallelRegion'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x24b0): undefined
reference to `omp_get_max_threads'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x24b9): undefined
reference to `omp_in_parallel'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x24c4): undefined
reference to `emlrtExitParallelRegion'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x24c9): undefined
reference to `omp_in_parallel'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x24d4): undefined
reference to `emlrtExitParallelRegion'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x24dc): undefined
reference to `emlrtLeaveRtStackR2012b'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para.obj:grain_struct_grower_para.cpp:(.text+0x24e8): undefined
reference to `emlrtDestroyRootTLS'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para_mexutil.obj:grain_struct_grower_para_mexutil.cpp:(.text+0x31):
undefined reference to `omp_set_lock'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\grain_struct_grower_para_mexutil.obj:grain_struct_grower_para_mexutil.cpp:(.text+0x4d):
undefined reference to `omp_unset_lock'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj:_coder_grain_struct_grower_para_info.cpp:(.text+0xa6):
undefined reference to `emlrtCreateStructMatrix'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj:_coder_grain_struct_grower_para_info.cpp:(.text+0xb8):
undefined reference to `emlrtCreateLogicalMatrix'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj:_coder_grain_struct_grower_para_info.cpp:(.text+0xc8):
undefined reference to `emlrtMxCreateString'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj:_coder_grain_struct_grower_para_info.cpp:(.text+0xdc):
undefined reference to `emlrtSetField'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj:_coder_grain_struct_grower_para_info.cpp:(.text+0xe9):
undefined reference to `emlrtMxCreateDoubleScalar'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj:_coder_grain_struct_grower_para_info.cpp:(.text+0xfd):
undefined reference to `emlrtSetField'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj:_coder_grain_struct_grower_para_info.cpp:(.text+0x10a):
undefined reference to `emlrtMxCreateDoubleScalar'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj:_coder_grain_struct_grower_para_info.cpp:(.text+0x11a):
undefined reference to `emlrtSetField'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj:_coder_grain_struct_grower_para_info.cpp:(.text+0x12b):
undefined reference to `emlrtSetField'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj:_coder_grain_struct_grower_para_info.cpp:(.text+0x137):
undefined reference to `emlrtMxCreateString'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj:_coder_grain_struct_grower_para_info.cpp:(.text+0x147):
undefined reference to `emlrtSetField'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj:_coder_grain_struct_grower_para_info.cpp:(.text+0x154):
undefined reference to `emlrtMxCreateDoubleScalar'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj:_coder_grain_struct_grower_para_info.cpp:(.text+0x164):
undefined reference to `emlrtSetField'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj:_coder_grain_struct_grower_para_info.cpp:(.text+0x17d):
undefined reference to `emlrtCreateStructMatrix'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj:_coder_grain_struct_grower_para_info.cpp:(.text+0x18c):
undefined reference to `emlrtMxCreateString'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj:_coder_grain_struct_grower_para_info.cpp:(.text+0x19c):
undefined reference to `emlrtSetField'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj:_coder_grain_struct_grower_para_info.cpp:(.text+0x1ce):
undefined reference to `emlrtNameCaptureMxArrayR2016a'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj:_coder_grain_struct_grower_para_info.cpp:(.text+0x1df):
undefined reference to `emlrtSetField'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_info.obj:_coder_grain_struct_grower_para_info.cpp:(.text+0x1f3):
undefined reference to `emlrtSetField'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_mex.obj:_coder_grain_struct_grower_para_mex.cpp:(.text+0x78):
undefined reference to `emlrtErrMsgIdAndTxt'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_mex.obj:_coder_grain_struct_grower_para_mex.cpp:(.text+0xa5):
undefined reference to `emlrtReturnArrays'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_mex.obj:_coder_grain_struct_grower_para_mex.cpp:(.text+0xec):
undefined reference to `emlrtErrMsgIdAndTxt'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_mex.obj:_coder_grain_struct_grower_para_mex.cpp:(.text+0x153):
undefined reference to `emlrtLoadLibrary'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_mex.obj:_coder_grain_struct_grower_para_mex.cpp:(.text+0x15f):
undefined reference to `omp_init_lock'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_mex.obj:_coder_grain_struct_grower_para_mex.cpp:(.text+0x16b):
undefined reference to `omp_init_nest_lock'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_mex.obj:_coder_grain_struct_grower_para_mex.cpp:(.text+0x1a1):
undefined reference to `omp_destroy_lock'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_mex.obj:_coder_grain_struct_grower_para_mex.cpp:(.text+0x1ad):
undefined reference to `omp_destroy_nest_lock'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_mex.obj:_coder_grain_struct_grower_para_mex.cpp:(.text+0x1ca):
undefined reference to `omp_destroy_lock'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_mex.obj:_coder_grain_struct_grower_para_mex.cpp:(.text+0x1d6):
undefined reference to `omp_destroy_nest_lock'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_mex.obj:_coder_grain_struct_grower_para_mex.cpp:(.text+0x1df):
undefined reference to `emlrtReportParallelRunTimeError'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_mex.obj:_coder_grain_struct_grower_para_mex.cpp:(.text+0x209):
undefined reference to `omp_get_num_procs'
C:\Users\mlaub\AppData\Local\Temp\mex_2843770821395138_3468\_coder_grain_struct_grower_para_mex.obj:_coder_grain_struct_grower_para_mex.cpp:(.text+0x226):
undefined reference to `emlrtCreateRootTLS'
collect2.exe: error: ld returned 1 exit status
I dont get why emlrtAlias and many other cand be found, the folder extern/include where this header is, is named in the path at the top. I can even copy the emlrt.h into the directory where the cpp's are and it still says the same error.
exist('...\emlrt.h', 'file')=2, so the file is there...
Whats the problem?
gregory pais
2022 年 6 月 7 日
編集済み: gregory pais
2022 年 6 月 7 日
mex compiler indicates you that functions emlrt are not found. To solve it you have to indicate to the linker where these functions are present. These functions are present in libemlrt.lib under matlabroot\extern\lib\mingw64. You have to add the library file to the mex command like this mex -v *.cpp '-llibemlrt'.
Probably you have to add libmwmathutil where muDouble functions like muDoubleScalarMin are defined.
mex -v *.cpp '-llibemlrt' '-llibmwmathutil'
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Code Generation and Deployment についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!エラーが発生しました
ページに変更が加えられたため、アクションを完了できません。ページを再度読み込み、更新された状態を確認してください。
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
アジア太平洋地域
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)