Cannot find MEX function when executing C

System
  • Ubuntu running R2010a
Error
  • Undefined function or method 'mex' for input arguments of type 'char'.
Compilation call
/usr/local/matlab/bin/mcc -m -v -R -nodisplay remote_estimation.m
Context
  • Compiling .m file that has the follwing code:
function remote_estimation()
%#function mex
mex('/path/to/file.c');
When executing in matlab it works, after compiling and executing the binary, it gives the error described above

 Accepted Answer

Jan
Jan on 1 Feb 2012
The mex command does not perform magic tricks, it simply starts the compiler. Unfortunately mex has grown to a very obfuscated piece of code since Matlab 4. It are some M-, Perl- and BAT-files, while the last are not executed, but parsed by teh Perl functions.
If you find out the parameters used for starting the compiler, you can start the compiler by a single system call also.

2 Comments

thanks, that works.. it brings a new problem, but solves this question
new problem: http://www.mathworks.com/matlabcentral/answers/39246-error-when-executing-in-runtime-mex-compiled-file-also-in-runtime-c-standalone

Sign in to comment.

More Answers (1)

It is likely that the "mex" command is not supported for deployment. Is there a reason that you can't simply include your MEX-file with your application's CTF archive (using the mcc -a option)? Since the compiled application is platform-specific, the MEX-file from your machine should be sufficient on all target machines.

2 Comments

The code does not call a static file. The application uses a toolbox that needs to dynamically create the mex file (based on the given arguments).
As such, I really need for the 'mex' command to be accessible during run-time.
Does the generated mex code call the MATLAB routines, or is it pure C and OS calls? If it is pure C and OS calls, then can the toolbox emit C without the the mex headings, in a form that you could call upon a C compiler and generate a dynamic library that you could loadlibrary() on ?

Sign in to comment.

Categories

Products

Asked:

on 1 Feb 2012

Community Treasure Hunt

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

Start Hunting!