When you generate a library, MEX function, or executable from MATLAB® Coder™, the code generator invokes the C/C++ compiler to build a binary artifact. Build errors can occur during this process. These errors can occur during the compiling stage, or the linking stage, or at other stages of the build. You can view compiling and linking errors and warnings on the Build Logs tab of the code generation report.
The specific error messages and warnings that appear depend on the compiler and toolchain that you use for your platform. To see the current compiler or select a different one, at the command prompt, enter:
mex -setup
Build errors can occur for many different reasons. To diagnose and fix errors, you might have to investigate the error messages listed in your compiler documentation. Following are some commonly occurring issues that can lead to build errors when you generate code.
Specify a main function to generate a C/C++ executable. If you do not specify a main function, a build error occurs. The main function is contained in a separate main file. When you generate code, MATLAB Coder creates an example main file, but does not automatically use it for compilation. The example main function calls the generated code with mock input values. You must modify the example main or create your own main function for realistic input and output handling.
You can specify the main file as a command-line parameter to the
codegen
command, or in the MATLAB
Coder app, or by using configuration parameters. For more information and
examples, see:
If you want the code generator to automatically use the generated example main file to
build an executable for test purposes, you can set the
GenerateExampleMain
property of the configuration object to
'GenerateCodeAndCompile'
. See Incorporate Generated Code Using an Example Main Function.
If your code uses external C functions in coder.ceval
, then you
must specify the external files containing those functions or build errors can occur.
You can specify the files as command-line parameters to the codegen
command, or in the MATLAB
Coder app, or by using configuration parameters. For more information and
examples, see:
When you introduce external code into the build process, the external code can inject its own errors. You can introduce external code through multiple channels:
External type definitions that you create by using coder.opaque
that are defined in external header
files.
Structure type definitions that you create by using coder.cstructname
that are defined in external header
files.
Calls to external code by using coder.ceval
.
Specification of external build files to the codegen
command.
Inclusion of external code files by coder.cinclude
or coder.updateBuildInfo
.
Inclusion of external code through the app, on the Custom
Code tab, or through code generation configuration parameters
CustomSource
and CustomInclude
.
This list is not exhaustive. To address errors caused by these methods, you must examine and fix the issues with the external code or decouple the external code from your MATLAB code.