Fully standalone executable file

Hi @ all,
I'm not an expert in compiler. I would like to ask if someone tried to create, starting from matlab m file, a complete standalone executable file.
I already read a lot of technical documentation and a saw different webinar about the Matlab Compiler.
I tried to following step by step the webinar's instruction :
  • Create the project (with the main file like a function)
  • Build the project including the MCR
  • Packing the project
But when i run the exe file in a PC without matlab and without the MCR the program doesnt works.
Where I wrong?
Another questions :
Exists some tecnhical documentation with a list and the explication of the whole files created after the project build?
What is the different between 'standalone application' and 'windows standalone application' ?
If i use the windows standalone application if possible use the exe file with differnt operating system (such as Windows vista and/or windows 7)?
Is it possible creates a unique exe file working in both 32 and 64 bit operating system ?
Thanks in advance
M1Tc4

1 Comment

As I can't answer all questions: You need the MCR, otherwise it will not work ant it is designed like that. Maybe you want to generate C Code? Then look at the MATLAB Coder.

Sign in to comment.

 Accepted Answer

José-Luis
José-Luis on 6 Nov 2012
Edited: José-Luis on 6 Nov 2012
You need to have Matlab runtime installed in the computer where you plan to run your project. Otherwise it will not work. You do not need to have Matlab installed however.
Technical documentation: I don't know.
Standalone vs windows standalone: windows standalone might need some system dll's to run. A vanilla standalone shouldn't.
32 bit vs 64 bit: a 32 bit app should run on a 64 bit system. A 64 bit app won't work in a 32 bit system. So it is possible if you use the 32 bit version of Matlab but impossible if you use the 64 bit one.

4 Comments

Thanks a lot for the documentation Kaustubha, was what I looking for .
But i still perplexed.
In the deployment tool there is an option to include the MCR. What this options do?
All the webinar, about the MATLAB compiler, deals with standalone apllication, but this is a 'real' standalone? or it is a false advertisement ? or maybe I dont understand the meaning of standalone?
I see this as "real" as one need no MATLAB license.
Ok, I think that I will be closer to the reached solution. Only some doubts still remains.
When I Add the MCR Installer To the Deployment Package I see in the distib folder a windows batch file called '_install'.
When i distribute the stanalone apllication to a end user, the end user before run the application should run the _install file in order to install the MRC in the machine ?
P.S. sorry for the constant demands.
M1Tc4

Sign in to comment.

More Answers (2)

Andreas Goser
Andreas Goser on 8 Nov 2012
It is fine to be somewhat demanding, because you want to achieve a goal. Such community questions typically lead to fast answers, but you can never be sure of it and also if this will really bring you to a solution. You may want tio contact Technical Support.

1 Comment

Dear Andreas,
Finally I reached my goal! thanks to you, Jose-Luis and Kaustubha!
I would like to suggest to improve the technical documentation about the compiler, expecially the section regarding the distribution to end user and about the other files generated during the build (lacking some descriptions). In my opinion these sections are not clear enought.
Moreover, without the Technical Support, the community answers helps me to reflects about the problem that has allowed me to find the solution.
Regards
M1tc4

Sign in to comment.

Josue
Josue on 9 Nov 2012
HI Mitch,
I'm having the same question of you, Do you found the way to make it Full standalone executable file? When I generate the .exe file, if I don't place it on the same folder where the matlab functions (.m) and figures(.fig) are, the executable doesn't work.
Thanks,

5 Comments

Did you also install the MCR? You need that. The exe is not really a "standalone" executable, even though we call it that, because it also requires installation of the MCR. However the target computer doesn't need a MATLAB license or the full-blown MATLAB development environment.
Regarding discussion of the " real" executable... you might say that the standalone exe that gets created is not the "real" executable because it's actually like a self-extracting archive. When you run it, it unpacks a bunch of stuff in a hidden secret folder somewhere, and it actually runs it out of there, which not what you thought. If you want to find out where that is, have your program fprintf ctfroot to the command (console) window and you will see where the executable really lives.
fprintf('The executable was unpacked to %s\n', ctfroot);
Hi there,
I'm having this problem too, and I have installed MCR. When I double-click MyExecutable.exe, nothing happens (even after a few minutes, and Task Manager shows no evidence of anything happening).
If I run MyExecutable.exe from the command line, I immediately get a dialog box saying "WorkstationSA.exe has stopped working. A problem caused the program to stop working correctly. Windows will close the program and notify you if a solution is available." I can then choose to "Debug" or "Close program". If I choose "Debug", Visual Studio Just-In-Time Debugger tells me "An unhandled win32 exception occured in MyExecutable.exe [1140]". There are some debugging options from there, but it all seems out of my depth.
The executable runs fine on my Windows XP desktop. The problem only occurs on my Windows 7 laptop. Do you know any possible solutions?
Thanks, David
Maybe it is not about the OS (XP vs. Win7) but the architecture? let me guess. It is Win XP 32 bit and Win 7 64 Bit?
Are you sure there are no "red items" in Dependency Walker (as recommended by the FAQ)?
Thanks for the help. I wasn't aware of that FAQ page. My problem is fixed now.
I'd like to be able to post what my solution was but I'm not actually sure which change was the crucial one :s . Dependency Walker flagged up some missing DLLs, but I wasn't able to replace them. Also, I think they may have been 'false positive' detections from Dependency Walker, because they were missing on the 32bit PC too, where the .exe worked fine. The two architectures were as Andreas guessed.
The .exe worked when I built and packaged it on the same (64bit) machine as the problem was occurring. Maybe that helped.
Anyway, thanks again for your helpful suggestions. Sorry I can't be clearer.

Sign in to comment.

Categories

Products

Community Treasure Hunt

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

Start Hunting!