Invoke MATLAB Build Options
Specify Full Path Names to Build MATLAB Code
If you specify a full path name to a MATLAB® file on the mcc
command line, the compiler
Breaks the full name into the corresponding path name and file names (<
path
> and <file
>).Replaces the full path name in the argument list with “
-I <path> <file>
”.
Specifying Full Path Names
For example:
mcc -m /home/user/myfile.m
would be treated as
mcc -m -I /home/user myfile.m
In rare situations, this behavior can lead to a potential source of confusion. For
example, suppose you have two different MATLAB files that are both named myfile.m
and they reside in
/home/user/dir1
and /home/user/dir2
. The
command
mcc -m -I /home/user/dir1 /home/user/dir2/myfile.m
would be equivalent to
mcc -m -I /home/user/dir1 -I /home/user/dir2 myfile.m
The compiler finds the myfile.m
in dir1
and
compiles it instead of the one in dir2
because of the behavior of the
-I
option. If you are concerned that this might be happening, you can
specify the -v
option and then see which MATLAB file the compiler parses. The -v
option prints the full
path name to the MATLAB file during the dependency analysis phase.
Note
The compiler produces a warning (specified_file_mismatch
) if a
file with a full path name is included on the command line and the compiler finds it
somewhere else.
Using Bundles to Build MATLAB Code
Bundles provide a convenient way to group sets of compiler options and recall them as needed. The syntax of the bundle option is:
-B <bundle>[:<a1>,<a2>,...,<an>]
where bundle is either a predefined string such as cpplib
or
csharedlib
or the name of a file that contains a set of
mcc
command-line options, arguments, filenames, and/or other
-B
options.
A bundle can include replacement parameters for compiler options that accept names and
version numbers. For example, the bundle for C shared libraries,
csharedlib
, consists of:
-W lib:%1% -T link:lib
To invoke the compiler to produce the C shared library mysharedlib
use:
mcc -B csharedlib:mysharedlib myfile.m myfile2.m
In general, each %n%
in the bundle will be replaced with the
corresponding option specified to the bundle. Use %%
to include a
%
character. It is an error to pass too many or too few options to the
bundle.
Note
You can use the -B
option with a replacement expression as is at
the DOS or UNIX® prompt. If more than one parameter is passed, you must enclose the
expression that follows the -B
in single quotes. For example,
>>mcc -B csharedlib:libtimefun weekday data tic calendar toc
can be used as is at the MATLAB prompt because libtimefun
is the only parameter being
passed. If the example had two or more parameters, then the quotes would be necessary as
in
>>mcc -B 'cexcel:component,class,1.0' ... weekday data tic calendar toc
Available Bundle Files
Bundle File | Creates | Contents |
---|---|---|
cpplib | C++ library | -W cpplib: |
csharedlib | C library | -W lib: |
ccom | COM component | -W
com: |
cexcel | Excel Add-in | -W
excel: |
cjava | Java® package | -W
java: |
dotnet | .NET assembly |
|