For an end user to run an application or use a library that contains compiled MATLAB® code, there are two sets of tasks. Some tasks are for the developer who developed the application or library, and some tasks are for the end user.
Create a package that contains the software needed at run time. See Standalone Applications for more details.
The package for end users must include the .ctf
file,
which includes all the files in your preferences folder. Be aware
of the following with regards to preferences:
MATLAB preferences set at compile time are inherited by the compiled application. Therefore, include no files in your preferences folder that you do not want exposed to end users.
Preferences set by a compiled application do not affect the MATLAB preferences, and preferences set in MATLAB do not affect a compiled application until that application is recompiled. MATLAB does not save your preferences folder until you exit MATLAB. Therefore, if you change your MATLAB preferences, stop and restart MATLAB before attempting to recompile using your new preferences.
.
The preferences folder is as follows:
$HOME/.matlab/
on
UNIX current_release
on Windows® systemroot
\profiles\user
\applicationdata\mathworks\matlab\current_release
The folder will be stored in the deployable archive in a folder with a generated name, such as:
.mwapplication
_mcr\myapplication
_7CBEDC3E1DB3D462C18914C13CBFA649
Write instructions for the end user.
Distribute the package to your end user, along with the instructions.
Steps by the End User
Open the package containing the software needed at run time.
Run MCRInstaller
once on the target machine, that is, the machine where
you want to run the application or library. The
MCRInstaller
opens a command window and begins
preparation for the installation. See Install and Configure the MATLAB Runtime.
If you are deploying a Java® application to end users, they must set the class path on the target machine.
You must have administrative privileges to install the MATLAB Runtime on a target machine since it modifies both the system registry and the system path.
Running the MCRInstaller
after the MATLAB Runtime has
been set up on the target machine requires only user-level privileges.
Using the MATLAB Runtime Installer
When the MATLAB Runtime installer wizard appears, click Next to begin the installation. Click Next to continue.
In the Select Installation Folder dialog box, specify where you want to install the MATLAB Runtime and whether you want to install it for just yourself or others. Click Next to continue.
The Install MATLAB Runtime for yourself, or for anyone who uses this computer option is not implemented for this release. The current default is Everyone.
Confirm your selections by clicking Next.
The installation begins. The process takes some time due to the quantity of files that are installed.
The installer automatically:
Copies the necessary files to the target folder you specified.
Registers the components as needed.
Updates the system path to point to the MATLAB Runtime binary folder, which is
<target_directory>\<version>\runtime\win64
.
When the installation completes, click Close on the Installation Completed dialog box to exit.
The software required by end users depends on which of the following kinds of software is to be run by the user:
To distribute a shared library created with MATLAB Compiler™ to end users, create a package that includes the following files.
Component | Description |
---|---|
MATLAB Runtime installer(Windows) | Self-extracting MATLAB Runtime library utility; platform-dependent file that must correspond to the end user's platform. |
matrixdriver.exe (Windows)matrixdriver (UNIX®) | Application |
| Shared library; extension varies by platform. Extensions are:
|
To distribute a .NET application that uses assemblies created with MATLAB Compiler SDK™, create a package that includes the following files.
Software Module | Description |
---|---|
assemblyName .xml | Documentation files |
assemblyName .pdb (if Debug option
is selected) | Program Database File, which contains debugging information |
assemblyName .dll | Compiled assembly file |
MATLAB Runtime installer | MATLAB Runtime installer (if not already installed on the
target machine). Run mcrinstaller function
to obtain name of executable. |
| Application |
To distribute a COM application that uses components created with MATLAB Compiler SDK for .NET assemblies or MATLAB Compiler for Excel® add-ins, create a package that includes the following files.
Software Module | Description |
---|---|
componentname .ctf | Deployable archive. This is a platform-dependent file that must correspond to the end user's platform. |
| Component that contains compiled MATLAB code |
_install.bat | Script run by the self-extracting executable |
MATLAB Runtime installer | Self-extracting MATLAB Runtime library utility; platform-dependent file that must correspond to the end user's platform. The MATLAB Runtime installer
installs MATLAB Runtime, which users of your component need to
install on the target machine once per release. Run |
| Application |
To distribute a Java application created with MATLAB
Compiler SDK,
create a
file.
To deploy the application on computers without MATLAB, you must
include the MATLAB Runtime when creating your Java package.packageName
.jar
To distribute an Excel add-in created with MATLAB Compiler, create a package that includes the following files.
Software Module | Description |
---|---|
| Add-in that contains compiled MATLAB code |
_install.bat | Script run by the self-extracting executable |
MATLAB Runtime installer | Self-extracting MATLAB Runtime library utility; platform-dependent
file that must correspond to the end user's platform. Run |
*.xla | Any Excel add-in files found in |
Project files now support the use of relative paths as of R2007b of MATLAB Compiler, enabling you to share a single project file for convenient deployment over the network. Simply share your project folder and use relative paths to define your project location to your distributed computers.
You can distribute an application generated by MATLAB Compiler to any target machine that has the same operating system as the machine on which the application was compiled. For example, if you want to deploy an application to a Windows machine, you must use the Windows version of MATLAB Compiler to build the application on a Windows machine.
Since binary formats are different on each platform, the artifacts generated by MATLAB Compiler cannot be moved from platform to platform as is.
To deploy an application to a machine with an operating system different from the machine used to develop the application, you must rebuild the application on the desired targeted platform. For example, if you want to deploy a previous application developed on a Windows machine to a Linux machine, you must use MATLAB Compiler on a Linux machine and completely rebuild the application. You must have a valid MATLAB Compiler license on both platforms to do this.
Deployable archives contain content (MATLAB files and MEX-files)
that need to be extracted from the archive before they can be executed.
In order to extract the archive you must override the default deployable
archive embedding option. To do this, ensure that you run the compiler
with the -C
option.
The deployable archive automatically expands the first time you run a MATLAB Compiler generated artifact.
To expand an archive without running the application, you can use the extractCTF
(.exe
on Windows) standalone utility provided in the
folder, where matlabroot
\toolbox\compiler\arch
is your system
architecture, Windows = arch
win64
, Linux = glnx86
, x86-64 = glnxa64
, and
Mac OS X = mac
. This utility takes the deployable archive as
input and expands it into the folder in which it resides. For example, this command
expands hello.ctf
into the folder where it resides:
extractCTF hello.ctf
The archive expands into a folder called hello_mcr
.
In general, the name of the folder containing the expanded archive
is <componentname>_mcr
, where componentname
is
the name of the deployable archive without the extension.
To run extractCTF
from any folder, you must
add
to
your matlabroot
\toolbox\compiler\arch
PATH
environment variable. Run extractCTF.exe
from
a system prompt. If you run it from MATLAB, be sure to use the
bang (!
) operator.