Steps for Deployment with MATLAB Compiler
Use MATLAB® Compiler™ and MATLAB Compiler SDK™ to package MATLAB files into deployable components that do not require MATLAB to run.
With MATLAB Compiler, you can create standalone applications, web apps, Microsoft® Excel® Add-ins, and MapReduce or Spark™ big data applications.
With MATLAB Compiler SDK, you can create C/C++ shared libraries, .NET assemblies, Java® classes, Python® packages, COM components, MATLAB Production Server™ deployable archives, Excel add-ins for MATLAB Production Server, and Docker® container-based microservices.
Write Deployable MATLAB Code
To package MATLAB scripts, functions, or class files, you must ensure the code is in a
finished state and ready to be run by the end user. You can use functions such as
isdeployed
to separate code that
runs before deployment. For more information, see Write Deployable MATLAB Code.
In addition to MATLAB scripts, MEX files, and class files, you can include other types of files, such as data files, in a compiled artifact. For details, see Access Files in Packaged Applications
Package Code for Target
You can use the following options to package MATLAB code.
The
compiler.build
andcompiler.package
functions, which allow you to package MATLAB code at the command lineThe
deploytool
compiler apps, which allow you to package MATLAB code using a graphical interfaceThe
mcc
function, which allows you to package MATLAB code at the command line and offers additional options to control the packaging process
During the packaging process, the compiler uses a dependency analysis function to include necessary supporting files. For more information, see Dependency Analysis Using MATLAB Compiler.
Distribute Files to Target Platform
Once you create a component, distribute either the application files or an installer
that contains all of the resources required to run the application on the target
platform. You can create an installer using a deploytool
app or using the compiler.package.installer
function. For more
information on distributing files, see Distribute Files to Application Developers.
If you execute an installer containing the compiled artifacts, then MATLAB Runtime is installed along with the application or shared library. If you distribute files manually, ensure MATLAB Runtime is accessible from the target machine.
Install MATLAB Runtime
MATLAB Runtime is a freely available set of shared libraries that enables you to run packaged MATLAB code without needing a licensed version of MATLAB. The version and update level of MATLAB Runtime must be the same or newer than the version of MATLAB used to compile the component.
For information on installing MATLAB Runtime, see Install and Configure MATLAB Runtime.
You can run your deployed component on your development machine in MATLAB without needing MATLAB Runtime.
Integrate Artifact with Application in Target Language
For some targets, such as .NET or Java, the compiler invokes the corresponding third-party compiler to create the artifact, so you must set up your development environment to work with the target language. For details, see the MATLAB Compiler SDK documentation for the target language.
To integrate a compiled artifact with an application in the target language, write code that calls the packaged MATLAB functions. MATLAB Compiler SDK can generate sample code for C++, .NET, Java, and Python that demonstrates how to call your exported MATLAB function in the target language. You can use samples to implement your own application or to test the compiled artifact. For more details, see Create Sample Code to Call Exported Function (MATLAB Compiler SDK).
Limitations and Restrictions
You can package most MATLAB functionality that can be called directly from the command line. For a list of functions not supported by MATLAB Compiler, see Functions Not Supported for Compilation by MATLAB Compiler and MATLAB Compiler SDK.
Compiled applications can run only on the same platform on which they were developed, with a few exceptions. For more details, see Limitations (MATLAB Compiler SDK).
See Also
deploytool
| compiler.build.Results
| compiler.package.installer
| mcc