Main Content

Custom Linking to Required API Libraries

MathWorks® recommends that you use the mex command to build MEX files and engine applications. This build script automatically links to the libraries required by the MATLAB® APIs used in your application.

To custom build these applications using an Integrated Development Environment (IDE) instead of the mex command, refer to this list of required run-time libraries and include files. To identify path names, use these MATLAB commands.

  • Replace matlabroot with the value returned by matlabroot.

  • Replace compiler with either microsoft or mingw64.

  • Replace macos with either maca64 for macOS with Apple silicon or maci64 for macOS with Intel®.

  • The path to the include files is the value returned by:

    fullfile(matlabroot,'extern','include')

C++ MEX Functions

To build C++ MEX functions, use the C++ MEX API and MATLAB Data API for C++.

Include files:

  • mex.hpp — Definitions for the C++ MEX API

  • mexAdapter.hpp — Utilities required by the C++ MEX function operator

Windows® libraries:

  • matlabroot\extern\lib\win64\compiler\libMatlabDataArray.lib

Linux® libraries:

  • Linux—matlabroot/extern/bin/glnxa64/libMatlabDataArray.so

macOS libraries:

  • macOSmatlabroot/extern/bin/macos/libMatlabDataArray.dylib

C++ Engine Applications

To build C++ engine applications, use the Call MATLAB from C++ and MATLAB Data API for C++.

Include files:

  • MatlabEngine.hpp — Definitions for the MATLAB Engine API for C++

  • MatlabDataArray.hpp — Definitions for a generic interface between C++ and MATLAB data

Windows libraries:

  • Engine library — matlabroot\extern\lib\win64\compiler\libMatlabEngine.lib

  • MATLAB Data library — matlabroot\extern\lib\win64\compiler\libMatlabDataArray.lib

Linux libraries:

  • Engine library — matlabroot/extern/bin/glnxa64/libMatlabEngine.so

  • MATLAB Data library — matlabroot/extern/bin/glnxa64/libMatlabDataArray.so

macOS libraries:

  • Engine library — matlabroot/extern/bin/macos/libMatlabEngine.dylib

  • MATLAB Data library — matlabroot/extern/bin/macos/libMatlabDataArray.dylib

C MEX Functions

To build C MEX functions, use the C Matrix API and C MEX API functions listed in Write C Functions Callable from MATLAB (MEX Files). Optionally, to read or write to MAT-files in your MEX functions, use the Write C Programs to Read MAT-File Data.

Include files:

  • mex.h — Declares the entry point and interface routines

  • matrix.h — Definitions of the mxArray structure and function prototypes for matrix access routines

  • mat.h (optional) — Function prototypes for mat routines

Windows libraries:

  • matlabroot\extern\lib\win64\compiler\libmex.lib

  • matlabroot\extern\lib\win64\compiler\libmx.lib

  • matlabroot\extern\lib\win64\compiler\libmat.lib (optional)

Linux libraries:

  • matlabroot/bin/glnxa64/libmex.so

  • matlabroot/bin/glnxa64/libmx.so

  • matlabroot/bin/glnxa64/libmat.so (optional)

macOS libraries:

  • matlabroot/bin/macos/libmex.dylib

  • matlabroot/bin/macos/libmx.dylib

  • matlabroot/bin/macos/libmat.dylib (optional)

Fortran MEX Functions

To build Fortran MEX functions, use the Fortran Matrix API and Fortran MEX API functions listed in Write Fortran Functions Callable from MATLAB (MEX Files). Optionally, to read or write to MAT-files in your MEX functions, use the Write Fortran Programs to Read MAT-File Data.

Include files:

  • mex.h — Declares the entry point and interface routines

  • matrix.h — Definitions of the mxArray structure and function prototypes for matrix access routines

  • mat.h (optional) — Function prototypes for mat routines

Windows libraries:

  • matlabroot\extern\lib\win64\compiler\libmex.lib

  • matlabroot\extern\lib\win64\compiler\libmx.lib

  • matlabroot\extern\lib\win64\compiler\libmat.lib (optional)

Linux libraries:

  • matlabroot/bin/glnxa64/libmex.so

  • matlabroot/bin/glnxa64/libmx.so

  • matlabroot/bin/glnxa64/libmat.so (optional)

macOS libraries:

  • matlabroot/bin/macos/libmex.dylib

  • matlabroot/bin/macos/libmx.dylib

  • matlabroot/bin/macos/libmat.dylib (optional)

C Engine Applications

To build C engine applications, use the C Matrix API and Call MATLAB from C. If you include C MEX API functions such as mexPrintf in you application, then you must link to the libmex library. For a list of functions, see Write C Functions Callable from MATLAB (MEX Files). Optionally, to read or write MAT-files in your application, use the Write C Programs to Read MAT-File Data.

Include files:

  • engine.h — Function prototypes for engine routines

  • matrix.h — Definition of the mxArray structure and function prototypes for matrix access routines

  • mat.h (optional) — Function prototypes for mat routines

Windows libraries:

  • Engine library — matlabroot\extern\lib\win64\compiler\libeng.lib

  • Matrix library — matlabroot\extern\lib\win64\compiler\libmx.lib

  • MEX library (optional) — matlabroot\extern\lib\win64\compiler\libmex.lib

  • MAT-File library (optional) — matlabroot\extern\lib\win64\compiler\libmat.lib

Linux libraries:

  • Engine library — matlabroot/bin/glnxa64/libeng.so

  • Matrix library — matlabroot/bin/glnxa64/libmx.so

  • MEX library (optional) — matlabroot/bin/glnxa64/libmex.so

  • MAT-File library (optional) — matlabroot/bin/glnxa64/libmat.so

macOS libraries:

  • Engine library — matlabroot/bin/macos/libeng.dylib

  • Matrix library — matlabroot/bin/macos/libmx.dylib

  • MEX library (optional) — matlabroot/bin/macos/libmex.dylib

  • MAT-File library (optional) — matlabroot/bin/macos/libmat.dylib

Fortran Engine Applications

To build Fortran engine applications, use the Fortran Matrix API and Call MATLAB from Fortran. If you include Fortran MEX API functions such as mexPrintf in you application, then you must link to the libmex library. For a list of functions, see Write Fortran Functions Callable from MATLAB (MEX Files). Optionally, to read or write MAT-files in your application, use the Write Fortran Programs to Read MAT-File Data.

Include files:

  • engine.h — Function prototypes for engine routines

  • matrix.h — Definition of the mxArray structure and function prototypes for matrix access routines

  • mat.h (optional) — Function prototypes for mat routines

Windows libraries:

  • Engine library — matlabroot\extern\lib\win64\compiler\libeng.lib

  • Matrix library — matlabroot\extern\lib\win64\compiler\libmx.lib

  • MEX library (optional) — matlabroot\extern\lib\win64\compiler\libmex.lib

  • MAT-File library (optional) — matlabroot\extern\lib\win64\compiler\libmat.lib

Linux libraries:

  • Engine library — matlabroot/bin/glnxa64/libeng.so

  • Matrix library — matlabroot/bin/glnxa64/libmx.so

  • MEX library (optional) — matlabroot/bin/glnxa64/libmex.so

  • MAT-File library (optional) — matlabroot/bin/glnxa64/libmat.so

macOS libraries:

  • Engine library — matlabroot/bin/macos/libeng.dylib

  • Matrix library — matlabroot/bin/macos/libmx.dylib

  • MEX library (optional) — matlabroot/bin/macos/libmex.dylib

  • MAT-File library (optional) — matlabroot/bin/macos/libmat.dylib

C MAT-File Applications

To build standalone applications to read data from C MAT-files, use the C Matrix API and Write C Programs to Read MAT-File Data. If you include C MEX API functions such as mexPrintf in you application, then you must link to the libmex library. For a list of these functions, see Write C Functions Callable from MATLAB (MEX Files).

Include files:

  • mat.h — Function prototypes for mat routines

  • matrix.h — Definitions of the mxArray structure and function prototypes for matrix access routines

Windows libraries:

  • MAT-File library — matlabroot\extern\lib\win64\compiler\libmat.lib

  • Matrix library — matlabroot\extern\lib\win64\compiler\libmx.lib

  • MEX library (optional) — matlabroot\extern\lib\win64\compiler\libmex.lib

Linux libraries:

  • MAT-File library — matlabroot/bin/glnxa64/libmat.so

  • Matrix library — matlabroot/bin/glnxa64/libmx.so

  • MEX library (optional) — matlabroot/extern/bin/glnxa64/libmex.so

macOS libraries:

  • MAT-File library — matlabroot/bin/macos/libmat.dylib

  • Matrix library — matlabroot/bin/macos/libmx.dylib

  • MEX library (optional) — matlabroot/extern/bin/macos/libmex.dylib

Fortran MAT-File Applications

To build standalone applications to read data from Fortran MAT-files, use the Fortran Matrix API and Write Fortran Programs to Read MAT-File Data. If you include Fortran MEX API functions such as mexPrintf in you application, then you must link to the libmex library. For a list of these functions, see Write Fortran Functions Callable from MATLAB (MEX Files).

Include files:

  • mat.h — Function prototypes for mat routines

  • matrix.h — Definitions of the mxArray structure and function prototypes for matrix access routines

Windows libraries:

  • MAT-File library — matlabroot\extern\lib\win64\compiler\libmat.lib

  • Matrix library — matlabroot\extern\lib\win64\compiler\libmx.lib

  • MEX library (optional) — matlabroot\extern\lib\win64\compiler\libmex.lib

Linux libraries:

  • MAT-File library — matlabroot/bin/glnxa64/libmat.so

  • Matrix library — matlabroot/bin/glnxa64/libmx.so

  • MEX library (optional) — matlabroot/extern/bin/glnxa64/libmex.so

macOS libraries:

  • MAT-File library — matlabroot/bin/macos/libmat.dylib

  • Matrix library — matlabroot/bin/macos/libmx.dylib

  • MEX library (optional) — matlabroot/extern/bin/macos/libmex.dylib

See Also

Related Topics