Loren on the Art of MATLAB

Turn ideas into MATLAB

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Deploying Standalone Applications 45

Posted by Loren Shure,

Guest blogger Peter Webb returns with another in an occasional series of postings about application deployment.

Contents

In the first four articles in this series, I addressed some of the differences between MATLAB and deployed runtime environment. With the next set, I'll be talking more about the features of our deployment tools, and how you use them to create deployable applications. Of necessity, I'm limiting myself to discussing the technical computing tools because that's where my expertise lies. Even though the term ''application deployment'' applies to control design tools like Real Time Workshop and Embedded MATLAB, I won't post about those tools here. You can read about code generation for control design applications in Seth Popinchalk's Seth on Simulink blog. By concentrating on the deployment process, I hope to complement the other articles in Loren's blog -- she'll show you how to write interesting MATLAB programs, and I'll help you turn them into deployable applications.

I'd like to to host a conversation here: a real two-way exchange of ideas. I'll post articles that will make it easier, and perhaps even more fun, to use the MATLAB Compiler and the Builders. I hope you'll respond with questions where you have them, praise where it's merited, and especially complaints and suggestions -- your feedback here will help us improve the tools you use.

In this post, I'm going to briefly introduce the most important application deployment concepts, and then demonstrate how to use the MATLAB Compiler to turn an MATLAB function into a standalone executable.

Application Deployment

Our deployment tools all focus on the same basic process: transforming a collection of functions written in MATLAB into an application or library that can be used outside of MATLAB.

The MATLAB Compiler and Builders allow you to deploy MATLAB applications as:

  • Stand-alone executables
  • C or C++ libraries
  • Microsoft .NET or COM components (local or remote)
  • Java classes
  • Microsoft Excel add-ins

A deployed application consists of a collection of MATLAB-based functions and data packaged for a particular target environment. For example, the MATLAB Compiler can package MATLAB-based functions into C++ shared libraries so they can be called in any programming environment that supports C++ functions.

All of our tools follow the same four step process to create a deployed application:

  • Examine the application to determine which MATLAB-based files to ship.
  • Generate interface (wrapper) functions for the target environment.
  • Invoke a target environment specific build tool (like a C++ or Java compiler) to create an executable or software component.
  • Assemble the MATLAB-based files and the binary generated in step 3 into one or more files for distribution.
  • The deployment tools create an application you can install on a machine without MATLAB. But in order to run, the application requires a runtime library (like Java programs require a Java installation). Our runtime library is called the MATLAB Compiler Runtime, or more commonly, the MCR. An installer for the MCR ships with the MATLAB Compiler and Builders. You can redistribute this installer to your end users.

    Creating a Standalone Executable

    A standalone executable is a complete program that you can run from the Unix command line or Microsoft Windows DOS command prompt. Standalone executables are a convenient way to provide turn-key MATLAB-based solutions to your colleagues or end users.

    Save this MATLAB function as helloworld.m. Before compiling it, test it in MATLAB. It should produce a globe with the continents visible and the view centered on the mid-Atlantic trench.

    function helloworld
    % HELLOWORLD Display the globe and a welcome message.
    
        % Load the topographical data for the globe
        load('topo.mat', 'topo', 'topomap1');
    
        % Create a unit sphere with 50 facets. This sphere is the Earth.
        [x,y,z] = sphere(50);
    
        % Establish initial viewing and lighting parameters. Use Phong shading
        % and texture mapping to wrap the topo map data around the sphere.
    
        props.FaceColor= 'texture';
        props.EdgeColor = 'none';
        props.FaceLighting = 'phong';
        props.CData = topo;
    
        % Set the viewpoint to look at the Atlantic Ocean.
        view(-130, 10);
    
        % Draw the sphere, with the topo data texture mapped to the surface.
        s=surface(x,y,z,props);
        set(gcf, 'Color', 'white');  % White background
        axis square
        axis off
        axis equal
    
        title('Hello, World.', 'FontSize', 14, 'FontWeight', 'Bold');
    end

    Build this function into a standalone application with the MATLAB Compiler:

      mcc -mv helloworld.m -a topo.mat

    Here, I've specified three groups of arguments to the mcc command:

    • -mv: -m means create a ''main'' program, a standalone executable. -v requests verbose output.
    • helloworld.m: The name of the MATLAB function to compile. The generated executable takes its name from the name of the first MATLAB function specified on the command line.
    • -a topo.mat: -a stands for ''additional file''; it is typically used to add data files to the application.

    This mcc command will create a standalone executable called helloworld on UNIX systems, helloworld.exe on PCs running Microsoft Windows.

    In order to run the executable, the operating system needs to be able to find the MCR. You need to put the MCR's runtime/<architecture> directory on the system's library search path. On Windows, you add it to the PATH environment variable. On Unix, you add it to LD_LIBRARY_PATH (except on the MacIntosh, which uses DYLD_LIBRARY_PATH). To run the executable locally (on the machine where you created it), use MATLAB's runtime/<architecture> directory. If the environment variable MATLAB_ROOT indicates the root of your MATLAB installation, add the runtime directory to the library search path with one of the following commands

    Linux 32-bit:
      % setenv LD_LIBRARY_PATH $MATLAB_ROOT/runtime/glnx86
    Windows:
      c:\Work> set %PATH%;%MATLAB_ROOT%\runtime\win32

    Then, run the application:

    UNIX:
      % helloworld
    Windows:
      c:\Work> helloworld.exe

    You should see a single window displaying a map of the world.

    How Can I Help?

    Writing applications for deployment requires a new set of skills. There are differences between the MATLAB interactive environment and the DOS and Unix command lines that I can't (and don't want to) erase. But I do want to make the deployment process as painless as possible. Let me know how we're doing. Tell me what we've done right, and how we could improve. I've got a long list of topics lined up for future postings, but I'm very interested in hearing what you'd like to know. Reply to this posting and let's get started.


    Get the MATLAB code

    Published with MATLAB® 7.11

    Note

    Comments are closed.

    45 CommentsOldest to Newest

    Matt Whitaker replied on : 1 of 45
    Hi Loren, Overall I find the deployment process pretty painless however one thing that would be great would be the ability to display a splash screen while the JVM and MCR start up in a standalone application. The time delay can be really disturbing to end users as they think nothing is happening. The workaround in https://www.mathworks.com/support/solutions/en/data/1-6M21RQ/?solution=1-6M21RQ is not very satisfactory as it creates a modal dialog that actually pauses the startup of the program. Matt W
    Royi replied on : 2 of 45
    Thanks, exactly what I needed. Too bad it doesn't work out of the box in the 64 Bit versions. Hopefully next time you'll supply 64 Bit Compiler (Built In).
    Joan replied on : 3 of 45
    Hi, We have been using MATLAB deployed tools for quite some time. We believe it’s a great way to go from prototypes to production code. Creating standalone applications like the example you mentioned is trivial which means that there is little room for improvement. Interfacing with other languages is a little bit harder and stopping a computation (control+C) or running a local parallel job at the time of this writing is not possible. Here are the areas I think would be worth looking at: -Compile time: It would be great if the compilation time depended only on the amount of code changed, not the total project size. Also, it would be nice if the compilation process would be able to split the effort among the different cores. -It would be useful to be able to stop a running computation by being able to send a Control+C from a different thread to the MCR. Sometimes GUI users realize half the way through a computation that one of the inputs they typed in is wrong, and they need to wait for the whole process to execute. -We have been interested in using the Parallel Computing Toolbox but because we don't have the resources to maintain a cluster we have not been able to do so. Our only option would be to be able to start a local pool inside the MCR. -Java to MATLAB and MATLAB to Java mappings for objects. We have really large amounts of Java code dedicated to transforming MW* objects to regular java objects. I think this could be done much more efficiently both in speed and developer productivity. Imagine I have a MATLAB function that returns an object of type MyMatlabType with fields name (a String) and number (a double array) and I compile it into MyLib. Also in the Java side I have a class named MyJavaType which has the same fields (for this example, but not mandatory) What I would like to be able to do is something like this: MyLib lib = new MyLib(); lib.registerConverter(new TypeConverterDescriptor()); Then I would be able to write code like: MyJavaType obj = (MyJavaType)lib.myFunction(); // The MCR would catch that myFunction returns a MyMatlabType and automatically convert it to a MyJavaType object. Also, it would work the other way around, so if I have a MATLAB function that expects a MyMatlabType input I would be able to write code like this: lib.myFunction(new MyJavaType()) //The MATLAB function would automatically get the right MATLAB object The key is what TypeConverterDescriptor should look like. It should include things like the name of the classes on both ends, what java field name maps to what MATLAB field name. It should provide direction on how to convert non basic types or types that don’t exist in one of the two languages, etc. It should allow for recursion, so if MySecondJavaType contains a field of MyJavaType it should be able to use or reference another converter. Joan You might want to take a look at the slides from MVC2010 on the subject: https://docs.google.com/present/edit?id=0AbvW_wUON0Y0ZGh6aGszaF82aGJ2czg2dzQ&hl=en
    Peter Webb replied on : 4 of 45
    Matt, Thanks. We've got that enhancement request logged in our system already. I promise to post about it if it ever ships. (We've got a long list of enhancements to work on...) Peter.
    Arthur replied on : 5 of 45
    I second Matt's comment about splash screen support. MCR takes way too long to start up without some kind of indication to the user that something is happening, especially for Windows GUI applications. We wrote an ugly bit of C that automatically restarts itself using MemShieldStarter and displays a splash screen until our GUI is finished initializing. We also had figure out the right combination of arguments to get mcc to pass the right arguments to lcc so our C wrapper would compile & link with the MCC portion without errors. My second gripe with MCC is that you can't run the "stand-alone" application on a bare Windows XP machine. Even after extracting the content of MCR to a network share, I can't figure out any place I can put the VC2005 DLLs where the MCR will find them. This means I have to have administrator access to any machine where the application will ever run. This causes two problems for me: My customers can't run the application without getting their IT administrators involved, and I can't compile jobs for execution on our Condor cluster (because very few of the workers have the VC2005 runtime installed).
    James Ross replied on : 6 of 45
    I tried to deploy applications a couple of years ago and they did not work. I ended up with a consultant who took my applications and deployed them with almost no effort. Eventually, we discovered that I could deploy an application just fine as long as I did not use my PC to do it. Every other PC I tried worked just fine. One hint for those just getting started: look into the function "isdeployed" - it allows you to exclude code that won't work in a deployed application. For example, dumping data to the base workspace or displaying text in the non-existent command window.
    Peter Webb replied on : 7 of 45
    Royi, If you're on Windows, you can try Visual Studio Express, which is free. And on Linux and Mac we recommend GCC. Here's the list: https://www.mathworks.com/support/compilers/R2010b/win64.html Peter.
    Aurelien Queffurust replied on : 8 of 45
    Hi! I am very happy to see an new post from Peter Webb. First of all, I would like to give my feedback about the first answer from Matt Whitaker. Instead of using a splash screen , I am using mcc with the flags -R followed by -startmsg and -completemsg . See the screeshots in my blog : http://blog.developpez.com/matlab4geek/ It has several goals : - it makes the user to wait until the standalone starts - it allows to know who has written the code - when the executable has been compiled - and in which release mcc was invoked. the last item for me is important , Software versioning is so tricky when you have several installation of MATLAB and MCR! For example with the current release R2010b : MATLAB is 7.11 MATLAB Compiler is 4.14 MATLAB Compiler Runtime is 7.14 (found using mcr or mcrversion features) in R2006b : MATLAB is 7.3 MATLAB Compiler is 4.5 MATLAB Component (and not Compiler since prior to 8a) Runtime is 7.5 So as you can see it is not trivial ;) and when you get the "famous" error message indicating missing DLLs such as mclmcrrt73.dll ...good luck to find which MCR has not been installed. ****************************** As I perform compilation everyday for my company, I am glad about the enhancement that as of R2008a, CTF data is now automatically embedded. Sending only one file by email to end-users or uploading one file to the server is better than 2 files ;) ********************************************** An idea for next post for Peter Webb : you could talk about the %#function . Sometimes this pragma is really helpful to tell MATLAB Compiler that functions are called through feval, eval, or Handle Graphics callback. If you don't know this feature, your application might not work as expected in deployed mode. ******************************************** This toolbox is really easy to use : only 9 command-line tools. I am still in old-school mode since I use everyday mcc instead of deploytool. ******************************************** And the video tutorial (made by Adam Leon) shipped with ML Compiler is effective : in 3mn15 you show the power of ML Compiler without forgetting to quote ctfroot and isdeployed. Aurélien http://blog.developpez.com/matlab4geek/
    Peter Webb replied on : 9 of 45
    Joan, Many of the upcoming articles will be devoted to using shared libraries. As you very correctly note, the interaction between shared libraries and their host environments is full of interesting questions. :-) We definitely recognize the need to make it easier to marshal data across the MCR/host boundary. We are thinking hard about how to manage the interaction between MATLAB and host environment objects. Once we've got anything concrete to say, you'll hear about it here.
    Peter Webb replied on : 10 of 45
    Just an FYI, a couple of years ago, I wrote four articles about how to manage your MATLAB code to make deployment easier. They're archived here: https://blogs.mathworks.com/loren/category/deployment/ I explained the use of %#function in this one: https://blogs.mathworks.com/loren/2008/06/19/writing-deployable-code/#13 But maybe it's worth expanding that explanation...
    Joan replied on : 11 of 45
    Hi Peter, Thanks for your answer. I am definetly looking forward to the marshalling features you are thinking about. Joan
    Joan replied on : 12 of 45
    One other thing that sometimes lead to problems are figure windows. Generally in a compiled application I would like to do the rendering off screen and export the image to a file. I am able to do that, but the user sees windows that popup and go away very rapidly (sometimes not enough and the user manages to close the window and cause an error) What do you generally do for plots in compiled apps? Joan
    Arthur replied on : 13 of 45
    Regarding -startmsg and -completemsg, those flags only help if you're running with a console (e.g. "mcc -m"). If you're developing a true Windows GUI application ("mcc -e"), there is no console, even when started from a command prompt, so there's nowhere for the MCR to display those messages.
    Peter Webb replied on : 14 of 45
    Arthur and Matt, For more information about Aurélien's suggestion (thanks!), here's a description of how to use the -startmsg and -completemsg flags: https://www.mathworks.com/help/compiler_sdk/ml_code/display-matlab-runtime-initialization-start-up-and-completion-messages-for-users.html
    OysterEngineer replied on : 15 of 45
    Peter, Wonderful post on an important topic. I generally use the deployment tool & find it very easy to get the intended results. A co-workers has the habit of using the mcc command directly & has written some simple scripts to populate the mcc command, I guess you could say that this is his version of the deployment tool. Here is a question: Let's say that an application is compiled for deployment & the mcc command was executed in a Windows environment, is it possible to then deploy the compiled object to Unix?
    Bradley replied on : 16 of 45
    I have a few pieces of code that I deploy, usually to users not in close physical proximity. The main difficulty is usually getting the MCR Installer to them (not sure from this blog - it sounded like it might be possible to do it without the installer). Shipping a 160 MB installer that - as best I understand from reading around a year or so ago - we're allowed to distribute but not allowed to post on the internet, can become quite a hassle. For comparison the exes I send are usually only about one MB, and most email programs are limited to 10 MB or sometimes less. Something else frustrating is trying to get versions for different end user platforms. In my department we only have MATLAB on windows machines, and I do all my coding on 64 bit windows. I can access a 32 bit machine to make a one-off compile for Win32 users (and to grab the corresponding MCR Installer at the same time), but to date I've never managed to compile an executable for linux or mac users. I'm not sure if the difference between operating systems is such that that is unavoidable, but it would be great to be able to make executables (and find corresponding MCR installers) for different operating systems.
    Yair Altman replied on : 17 of 45
    Peter - some time ago I used the compiler (not the latest version - 2008a if memory serves) and found that figure docking is unfortunately not supported in the compiled application. The code compiles, but the figure docking icon is missing and when you try to programmatically dock the figure, the application "croaks". It took me quite some time to find an undocumented fix for this problem. Maybe this has already been solved in the latest compiler versions, but I thought of letting you know. After all, the fix I found shows that there is no real limitation in deployed figure docking. Aside from docking into the Desktop, which is unavailable, figures can indeed be docked into the Figures group or even user-defined groups. So, I suggest that the specific code that prevents deployed docking should be removed. -Yair
    Han Oostdijk replied on : 18 of 45
    Adding to remark #6 (second part) by Arthur: If deployment to a customer means that administrator rights for his/her machine are needed, then it makes no sense for me to acquire the Compiler. Therefore my questions: Is deployment possible without such rights? E.g. by just copying directories for development machine to customer machine and letting the customer start the application with a batch file that sets paths to the copied directories? Thanks in advance for your feedback, Han
    Aurelien Queffurust replied on : 19 of 45
    @OysterEngineer If we take the example helloworld here, MATLAB Compiler will create a hellworld.exe for Windiws. You could not use this standalone under another OS such as Linux , Mac. It is explained in the doc , within the section "Porting Generated Code to a Different Platform". Since binary formats are different on each platform, the components generated by MATLAB Compiler cannot be moved from platform to platform as is. Aurélien http://blog.developpez.com/matlab4geek/
    Peter Webb replied on : 20 of 45
    Joan, There isn't a perfect solution for rendering invisibly. One possible approach is to position your windows off-screen (at some distant position, say (10,000, 10,000)). Then you should at most see an entry in the taskbar -- most of the window should remain hidden. This may discourage your users from closing them inadvertently. You might also try setting the visibility of the window to 'off' before rendering it. This should keep it mostly invisible.
    Peter Webb replied on : 21 of 45
    OysterEngineer, Currently the best way to deploy a single application to multiple platforms is to use Builder JA -- deploy MATLAB functions as a JAR, and then write a simple Java main program to call the function exported by the JAR file. Of course, you'll have to be careful not to include any MEX functions or other platform-specific code in your application.
    Han Oostdijk replied on : 22 of 45
    For completeness of the 'dossier' I include the answer to my question #19 that I received from Aurélien in the Newsgroup: === start of answer This is the official answer : How can I install the MATLAB Component Runtime without Administrator rights when using MATLAB Compiler 4.6 (R2007a)? https://www.mathworks.com/support/solutions/en/data/1-4B6VFA/?solution=1-4B6VFA Aurélien, http://blog.developpez.com/matlab4geek/ === end of answer Thanks again Aurélien! Han
    Peter Webb replied on : 23 of 45
    Aurélien, Han, Arthur and Bradley, It seems clear that there are enough questions about the MCR installer to warrant a post on that subject. I'll try to address the questions about size and administrator privileges. These questions are too complex to fully answer in a comment thread like this one.
    Scott replied on : 25 of 45
    +1 for splash screen option when starting up the MCR. ASAP. I've got my compiled matlab GUI opening a custom file type, and people will always try to open the file multiple times before realizing it just takes a long time for the program to load. Need a way to alert them that things are working. +1 for easier MCR installer distribution. File is too large to email, and customers are often not on a shared network. PLEASE make these files available to download from the Mathworks website. It is freely distributable, so why make it so difficult? Last request, please let me change my program window icon in the windows task bar. It gets very confusing with a GUI app and many other matlab figures open at the same time.
    Adam replied on : 26 of 45
    I gave up on the MCR last year. Sometimes it would not start properly, so not suitable for wide deployment to users with less sophistication. Far too expensive, considering I can write something more robust in python. I do miss having access to the Matlab code base, though.
    Sree replied on : 27 of 45
    Hi, After installing the MCR when I try to open my standalone it takes almost 1 min to start. The command window opens immediately but the GUI takes time to open. Is it normal or does it depend on my program?
    Scott replied on : 28 of 45
    @Sree - yep that's normal. It is basically starting a full version of Matlab. Now imagine if you suppress the stdio window (as I do). Now you know why I want ability to put up my own splash screen at launch.
    Sanjeet Kumar replied on : 30 of 45
    Hi All,
    I have tried the Deploy tool to create Matlab Stand alone application which works fine on the machine installed MATLAB. But it is not working on the machine which is not having MATLAB installed on it. I tried it with Matlab runtime component. which didn't help. I got some error stating dll files missing. I copied those dll files from my MATLAB folder and pastes it to MCR folder in the other machine.. But it didn't help too. Kindly suggest me some help if u have ..
    
    u can mail me ar san.ank9@gmail.com 
    
    thanks in advance.:-)
    
    Peter Webb replied on : 31 of 45
    Sanjeet, You'll find detailed instructions for installing the MCR in the documentation. If those don't work for you, please try contacting support@mathworks.com.
    Devin replied on : 32 of 45
    Hello, when I use the mcc command I get this message: which: no ifconfig in (/usr/local/bin:/usr/bin:/bin:/opt/bin:/usr/x86_64-pc-linux-gnu/gcc-bin/4.4.4 why is Matlab even looking for ifconfig? Is matlab trying to change or record my network settings?
    Peter Webb replied on : 33 of 45
    Devin, This thread on comp.soft-sys.matlab discusses the problem you're seeing: http://groups.google.com/group/comp.soft-sys.matlab/browse_thread/thread/b1134d5a97a8554d/0a64dff45a16ded0?lnk=raot
    Marco Matteotti replied on : 34 of 45
    HI!I'm Marco from Italy. I'm creating a standalone matlab application bu I have a problem. I need to use socket and TCP communication so I have to import some java classes in the m-file. The following code is an example:
    function prova
    
    import java.io.*;
    import java.net.*;
    
    import java.lang.Integer;
    
    
    
    try
        fprintf('\n connection with server...\n');
        sock = Socket('127.0.0.1',8888);
        in = BufferedReader(InputStreamReader(sock.getInputStream));
        out = PrintWriter(sock.getOutputStream,true);
    catch ME
       % error(ME.identifier, 'Connection Error: %s', ME.message)
    end
    
    
    fprintf('\n DONE....\n');
    
    end
    
    Within matlab it works fine but when I run the standalone application I have the following error: Connection Error: Undefined function or method 'Socket' for input arguments of type 'char'. Can you help me? I think there is a problem with java path/libraries.... thanks, Marco
    Peter Webb replied on : 35 of 45
    Marco, The documentation talks about setting the JAVA_HOME and CLASSPATH variables, which should help. Try setting JAVA_HOME to the root of your Java installation.
    Rohit Makhijani replied on : 36 of 45
    Dear Ma'am, I am an under-grad Student from Mumbai,India. We are developing a project in which the mouse pointer can be manouvered with the eye, in order to aid the usage of disabled people. We are tracking using a correlation code that we have developed. One file is used to take live video input using a webcam and we pass the coordinates from it. But it becomes extremely SLOW. Ma'am, we would be very happy if you could help by telling that if the speed will increase if we deployed it as an EXE file or as a .NET component,etc.. Awaiting ur reply Thanking you. Rohit Makhijani
    Nitin replied on : 37 of 45
    Hi, I get "Evaluate Function Error: matlabpool" when I published a windows application using Visual Studio 2010. The application is meant to run on the same machine and utilize its multicore processor and not clusters. Application works fine in machines that have same version of MATLAB (2011b Prerelease) installed. But when tried in machines with MCR 7.16 installed (published and added using deploytool of 2011b Prerelease) and dont have MATLAB installed, this error is popped from MATLAB. Even in machines that have MATLAB 2011b and MCR, if I set the MCR path before MATLAB runtime (which is the other way by default), the same error is popped. I have also tried supplying the config file at runtime as I read in an article that, Published applications require one. I have read many blogs and forums but couldn't find an answer. Please help. Thank you.
    Toto replied on : 38 of 45
    Thank for sharing this tutorial. THis tutorial very helpul for me. I can solve my proble to deploying matlab standalone application with this basic tutorial :)
    Paul replied on : 39 of 45
    I plan on implementing a project soon in Matalb Builder EX, which I currently do not have. Is it possible to wrap up class files along with the standard function files for deployment? All the documentation I've reviewed points to using function files only. Thanks!
    Loren replied on : 40 of 45
    Paul- Yes, you can deploy classes as well. Thanks for pointing that out about the documentation. --Loren
    Kyaw replied on : 41 of 45
    Dear Loren, I am facing the error messgae shown below during deployment 'cmd' is not recognized as an internal or external command, operable program or batch file. Error: An error occurred while shelling out to mbuild (error code = 1). Unable to build executable. ??? Error using ==> mcc Error executing mcc, return status = 1. I am using version 7.7.0.471(R2008b) with Microsoft Visual Studio 2005 SP2. There was no such issue using R2010b with Microsoft Visual Studio 2005 SP1 and all exe with package are working well. Is it because of with Microsoft Visual Studio or something else. Thanks and best regards Kyaw
    Kyaw replied on : 42 of 45
    Dear Loren, I am stuck on this deployment issue displaying error messge as shown below 'cmd' is not recognized as an internal or external command, operable program or batch file. Error: An error occurred while shelling out to mbuild (error code = 1). Unable to build executable. ??? Error using ==> mcc Error executing mcc, return status = 1. I am using Matlab 2008 and Microoft Visual Studio 2005 SP 2. Please advis me and I really apprecite your help. Thanks and best regards Kyaw
    Kyaw replied on : 43 of 45
    Dear Loren, I am newbie in deployment and would like to check with you 1. Matlab 2006a and Visual Studio 2005 1. Matlab 2008a and Visual Studio 2005 1. Matlab 2010a and Visual Studio 2005 Which combinational pair can generate the *.m and *.fig files together? Pls advise me and I really appreciate your help. Thanks and best regards Kyaw
    Kyaw replied on : 44 of 45
    Dear Loren, I am facing the deployment for 32 bits using Matlab R2011b with Visual Studio 2005 in WIndows 7 Home Premium. Even I used the windows command line deploytool -win32 -build test.prj The error message "Unable to find a suitable install area" came out Is it because of using only one Matlab 2011b only ? Do I need to used 32 bits Matlab as additional installation? I really appreciate your help since my application was ok with 64 bits. Thanks and best regards Kyaw
    Mark replied on : 45 of 45
    This is my situation: - I have created a Matlab standalone application exe for my Asp Net web application. - When I use exe application in Visual Studio Environmnet (for debugging) it works, no problem. - When I deploy the exe (I copy it in inetpub/wwwroot//bin/dir) it doesn't works. - The exe in inetpub dir from dos command line works. Any idea? In deploy I have installed the MCR. Do I need the C/C++ compiler installed? Thanks and best regards.