Generating Standalone Executable file Using Matlab Coder

조회 수: 817 (최근 30일)
Mohammadreza
Mohammadreza 2011년 12월 8일
댓글: user86753 2022년 7월 27일
Hi,
I want to create a Standalone executable file from my Matlab code. I used "mcc" command and I got the exe file, but it just works on the computers which have Matlab. I want an Executable file to work on the computers without Matlab installed.
I tried using Matlab Coder to generate C++ code from my matlab code. I found that for some sort of functions such as "plot". We need to call them as the Matlab extrinsic function which means still we need Matlab on the computer to run the standalone executable file.
Could you please advise me how I can generate standalone executable file from my Matlab code in a way that it works on the computer without Matlab installed?
Thanks, Mohammadreza

채택된 답변

Kaustubha Govind
Kaustubha Govind 2011년 12월 8일
편집: MathWorks Support Team 2018년 11월 9일
There are two separate MathWorks' products that you are seemingly confused between:
1. The "mcc" (and "deploytool") command belongs to MATLAB Compiler , which can generate executables , DLLs, etc. from MATLAB code, but still call into MATLAB runtime libraries. You need to install the MATLAB Compiler Runtime (MCR) on the deployment machine to run binaries produced by MATLAB Compiler.
2. Completely standalone code can be generated using MATLAB Coder when using functions supported for code generation . The concept of "extrinsic" functions belongs here, where you can call into a function not supported for code generation, but the generated code will contain a dispatch to MATLAB. This is useful when generating MEX-files from MATLAB code which is an equivalent of a DLL/shared library that can be run only inside MATLAB.
There is currently no way to generate completely standalone code from functions like "plot" which are not supported for code generation with MATLAB Coder. The only option is to use the "mcc" command from MATLAB Compiler, and install the MCR on your target machine.
This link provides more info about using MATLAB Compiler and MATLAB Coder.
This topic shows an example of how to generate a standalone executable from MATLAB Coder, including the step of creating your own C main file.
  댓글 수: 5
Kaustubha Govind
Kaustubha Govind 2013년 4월 4일
Buer: I have already answered your question here.
Thusha Muthu
Thusha Muthu 2016년 4월 7일
i am trying to convert my matlab files in to exe, when i type deploytool in command window, it's not appearing as attached image. Please anyone help me how to make exe file from .m files

댓글을 달려면 로그인하십시오.

추가 답변 (5개)

Dr. Seis
Dr. Seis 2011년 12월 8일
편집: John Kelly 2013년 11월 13일
Check out this "deploytool" tutorial: Here
After packaging your standalone following these steps, does it still not work on a non-Matlab machine?
I have run into issues associated with dynamically linked libraries, but all of the computers that run my standalone programs can access it at run-time provided I supply the path to its location (so it isn't as big a deal).
  댓글 수: 4
Todd Flanagan
Todd Flanagan 2017년 8월 18일
Added this answer to the other one describing the two products together. Both bits seem helpful.
user86753
user86753 2022년 7월 27일
Hi Walter, the tutorial has been moved, do you have an updated link?

댓글을 달려면 로그인하십시오.


Peyman Obeidy
Peyman Obeidy 2016년 12월 17일
can we do this for scripts or you can only make standalone from GUI?
  댓글 수: 2
Walter Roberson
Walter Roberson 2016년 12월 17일
Earlier versions of MATLAB could not compile scripts; newer ones can. However, it compiles it by effectively adding on a "function" heading with a function name the same as the script file name. MATLAB Compiler is happy to compile routines that do not use graphics; it could always do that for functions that did not happen to use graphics, and as mentioned above it can now do so for scripts that do not happen to use graphics.
MATLAB does not distinguish between "figure" and "GUI": as far as MATLAB is concerned, every figure window is a GUI and every GUI is a figure window.
Perhaps what you are trying to refer to is "console apps", where no graphics is created and any interaction happens at the command line using text only. For that, generate it as a "standalone application" but not as "standalone application without console window". If you were using mcc then you would use the -m option but not -e .
Peyman Obeidy
Peyman Obeidy 2016년 12월 17일
Thank you, Walter, I save the script as a function and package it. It is working fine.
Best regards Peyman

댓글을 달려면 로그인하십시오.


reeva M
reeva M 2017년 9월 30일
편집: Walter Roberson 2017년 10월 9일
x=-pi:0.01:pi;
y=sin(x);
subplot(2,4,1);
plot(x,y);
title('sine wave');

Mahalakshmi Venkatesh
Mahalakshmi Venkatesh 2017년 10월 9일
편집: Walter Roberson 2017년 10월 9일
When I try the 'guide ImpulseResponseAnalysis' command, I et the following error:
Error using guide (line 134)
File 'ImpulseResponseAnalysis.fig' not found.
Is there a way around this? :)
Many Thanks,
Mahi
  댓글 수: 1
Walter Roberson
Walter Roberson 2017년 10월 9일
ImpulseResponseAnalysis.fig does not appear to have been provided with MATLAB and does not appear to be in the File Exchange, and I do not find it anywhere online. If you are trying to create a new GUI by that name, just start up guide, create a GUI, and tell guide to save it under that name.

댓글을 달려면 로그인하십시오.


Ridvan Taskiran
Ridvan Taskiran 2018년 5월 3일
hi . I need help about this application. I prepared application but when I started it, it waiting on the screen and nothing happen. How can I solve this problem?

카테고리

Help CenterFile Exchange에서 MATLAB Coder에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by