S-function does not exist error!

353 views (last 30 days)
Mahmud Khan
Mahmud Khan on 19 Sep 2018
Commented: Mahmud Khan on 7 Feb 2019
I am trying to test this Matlab model which uses a random signal generator and both a Matlab based S-function block (a dot m file) and a C code based S-function block ( dot c file).When I run this model, I get the following error:
I tried to find solutions for a while and realised that the MEX file in that folder is probably what the s-function block uses to utilise the C-code. I also found out that the MEX file in that folder may not be compatible with my version of Matlab. As a result, I tried to use the "mex" command:
mex secondOrder_c.c)
That gave me the following error:
Error using mex
No supported compiler or SDK was found. You can install the freely available MinGW-w64 C/C++ compiler;
see Install MinGW-w64 Compiler. For more options, visit
http://www.mathworks.com/support/compilers/R2017a/.
I'd appreciate some help with this process. Is this happening to me because my computer has no C/C++ compilers installed? I have Visual Studio 2017 installed on the same computer. Doesn't that count for anything? Does the fact that Matlab didn't detect that software imply that it's useless?
I'd really like some help with this so that I can resume learning from the book where I came across this s-function thing.

Accepted Answer

Mahmud Khan
Mahmud Khan on 19 Sep 2018
This is me answering my own question:
What went wrong is that my installation of Matlab 2017a didn't come with the correct files needed for this job. As a result, I downloaded the patch from here:
There were two useful files inside the tiny zip file within a folder called bin. I just had to find the same folder under my Matlab installation folder and copy-paste these two files in there. Just follow the instructions on that page to fix this problem.
I had no previous copies of these two files in my Matlab directory so I didn't have to back anything up. I only had to add these two files to the directory under the Matlab folder bin/Win64/mexopts
This patch helped me fix the problem I was facing in generating MEX files and now my model runs just fine. :)
Hope this helps someone else too.

More Answers (1)

Fangjun Jiang
Fangjun Jiang on 19 Sep 2018
run "mex -setup" to select VC2017 as the compiler and then run mex.
  5 Comments

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!