编译 C++ Engine 程序的要求
支持的编译器
使用支持 C++11 的编译器。有关支持的编译器的最新列表,请参阅支持和兼容的编译器。
使用 mex
命令进行编译
您可以使用 MATLAB® 编辑器编写您的引擎应用程序代码,并运行 mex
命令编译它。要为 C++ Engine 应用程序设置编译器,请键入:
mex -setup -client engine C++
要编译您的 C++ Engine 程序 MyEngineCode.cpp
,请键入:
mex -client engine MyEngineCode.cpp
要测试您的设置,请参阅Test Your C++ Build Environment。
使用 IDE 进行编译
要使用集成开发环境 (IDE)(如 Microsoft® Visual Studio® 或 Xcode)编写源代码,请使用以下库和包含文件来设置编译 C++ Engine 应用程序的环境。引擎应用程序需要引擎库 libMatlabEngine
、MATLAB 数据数组库 libMatlabDataArray
和支持包含文件。
在以下路径设定中,将
替换为 MATLAB matlabroot
matlabroot
命令返回的路径。
Windows 库
在这些路径设定中,将 compiler
替换为 microsoft
或 mingw64
。
引擎库 -
matlabroot
\extern\lib\win64\compiler
\libMatlabEngine.libMATLAB 数据数组库 -
matlabroot
\extern\lib\win64\compiler
\libMatlabDataArray.lib
macOS 库
将 macos
替换为 maca64
(对于使用 Apple 芯片的 macOS)或替换为 maci64
(对于使用 Intel® 的 macOS)。
引擎库 -
matlabroot
/extern/bin/macos
/libMatlabEngine.dylibMATLAB 数据数组库 -
matlabroot
/extern/bin/macos
/libMatlabDataArray.dylib
Linux 库
引擎库 -
matlabroot
/extern/bin/glnxa64/libMatlabEngine.soMATLAB 数据数组库 -
matlabroot
/extern/bin/glnxa64/libMatlabDataArray.so
其他库 - pthread
例如,要编译 myEngineApp.cpp,请使用下列库。将
替换为 MATLAB matlabroot
matlabroot
命令返回的路径。
g++ -std=c++11 -I matlabroot/extern/include/ -L matlabroot/extern/bin/glnxa64/ -pthread myEngineApp.cpp -lMatlabDataArray -lMatlabEngine
引擎 Include 文件
头文件包含函数声明以及您在 API 库中访问的例程的原型。这些文件位于
文件夹中,并且与用于 Windows®、macOS 和 Linux® 系统的文件相同。引擎应用程序使用:matlabroot
/extern/include
MatlabEngine.hpp
- C++ Engine API 的定义MatlabDataArray.hpp
- C++ 和 MATLAB 数据之间的泛型接口的定义
MATLAB 数据数组是类和 API 的集合,提供外部数据和 MATLAB 之间的泛型接口。
运行时环境
要运行您的应用程序,请将以下环境变量之一设置为指定的路径。
操作系统 | 变量 | 路径 |
---|---|---|
Windows |
|
|
采用 Apple 芯片的 macOS |
|
|
采用 Intel 的 macOS |
|
|
Linux |
|
|
另请参阅
mex
| matlab::engine::MATLABEngine