MATLAB: Generating C/C++ executable for a GUI program

coderguiguidematlab coderMATLAB Compiler

I have Matlab GUI program that I want to convert in to a standalone executable using Matlab Coder. But when I try building the code, it gives me the following error:
>> coder -build Untitled1.prj
??? Function 'mfilename' is not supported for code generation. Consider using coder.extrinsic('mfilename') to bypass code generation.
The GUI code was built using Matlab GUIDE and the above error points to this part of the code:
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @main_OpeningFcn, ...
'gui_OutputFcn', @main_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

Best Answer

MATLAB Coder supports a limited subset of MATLAB functionality, which does not include GUIDE GUIs. You need to use the MATLAB Compiler product to deploy MATLAB GUIs.