Generate code: source code or mex file ?
6 次查看(过去 30 天)
显示 更早的评论
Hi,
it has only been a few days since I am dealing with mex files.
I am using Matlab coder. I can convert my original m files without any problems, but now I've got a doubt on which "build type" to choose. I was, without thinking too much, selecting the "Source code". I got the .mexw64, and I run the function name_function_mex in my Matlab code.
I saw now that, based on the description, the source type "MEX" should be more suitable, because it is a compiled code to be run in Matlab. I also tried the "MEX" built type, and the only difference I see is that I get a lot more files in the generated mex-related folder.
So my question is: why did the "source code" work at all in my case? Since it was working in my Matlab code (I could call the name_function_mex function as any other functions), should I still consider the build type "MEX" for some special reason...?
0 个评论
采纳的回答
Darshan Ramakant Bhat
2020-8-2
From your description I am assuming that you are using coder app.
When the "build type" is "Source code" it is not suppose to generate any MEX files. The correct configuration to generate MEX is the "MEX" build type.
I had tried "Source Code" configuration with a simple example, but I did not get any MEX file generated. Please attach the .prj file along with all the input files so that I can try to reproduce this from my end.
3 个评论
Darshan Ramakant Bhat
2020-8-5
Ahh, Now I got what is happening.
There is an intermediate optional step called "Check for run-time issues". In this step Coder will generate a MEX file to check run-time issues. More details :
If you skip this step, the "mex" folder should not get generated (not recommended).
So this will create a "mex" folder inside codegen. The .mexw64 is cached inside this folder to avoid re-generation when no settings are changed. Note that this MEX will be generated with customized settings suitable for internal use of runtime issue checking.
When you choose "MEX" build type, a .mexw64 file will be generate outside the "codegen" folder. Please use this in your application.
Hope this will be helpful for you.
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!