编译 C++ 引擎程序

目录

编译 C++ 引擎程序

支持的编译器

使用 mex 命令编译 .cpp 文件

一般要求

引擎 Include 文件

运行时环境


编译 C++ 引擎程序

支持的编译器

​        使用支持 C++11 的编译器。有关支持的编译器的最新列表,可以参考支持和兼容的编译器网站。

使用 mex 命令编译 .cpp 文件

        如果安装了受支持的编译器之一,可以使用mex命令为 C++ 引擎应用程序设置编译器。当系统提供用于选择编译器的选项时,选择已安装的用于 C++ 的 MATLAB® 引擎 API 支持的编译器。

mex -setup -client engine C++

使用 MATLAB mex 命令编译 C++ 引擎程序。

mex -client engine MyEngineCode.cpp 

一般要求

        使用下列库、include 文件、环境变量为编译和运行 C++ 引擎应用程序设置环境。引擎应用程序需要引擎库 libMatlabEngine、MATLAB 数据数组库 libMatlabDataArray 和支持 include 文件。​
        在以下各节中,将 matlabroot 替换为 MATLAB matlabroot 命令返回的路径。​

Windows 库

在这些路径设定中,将 compiler 替换为 microsoft 或 mingw64。

  • 引擎库 - matlabroot\extern\lib\win64\compiler\libMatlabEngine.lib

  • MATLAB 数据数组库 - matlabroot\extern\lib\win64\compiler\libMatlabDataArray.lib

Linux 库

  • 引擎库 - matlabroot/extern/bin/glnxa64/libMatlabEngine.so

  • MATLAB 数据数组库 - matlabroot/extern/bin/glnxa64/libMatlabDataArray.so

其他库 - pthread

​        例如,要编译 myEngineApp.cpp,可以使用下列库。将 matlabroot 替换为 MATLAB matlabroot 命令返回的路径。

g++ -std=c++11 -I <matlabroot>/extern/include/ -L <matlabroot>/extern/bin/glnxa64/ 
    -pthread myEngineApp.cpp -lMatlabDataArray -lMatlabEngine

Mac 库

  • 引擎库 - matlabroot/extern/bin/maci64/libMatlabEngine.dylib

  • MATLAB 数据数组库 - matlabroot/extern/bin/maci64/libMatlabDataArray.dylib

引擎 Include 文件

        头文件包含函数声明以及在 API 库中访问的例程的原型。

        这些文件位于 matlabroot/extern/include 文件夹中,并且与用于 Windows®、Mac 和 Linux® 系统的文件相同。引擎应用程序使用:

  • MatlabEngine.hpp - C++ 引擎 API 的定义

  • MatlabDataArray.hpp - MATLAB 数据数组的定义

        MATLAB 数据数组是类和 API 的集合,提供外部数据和 MATLAB 之间的泛型接口。

运行时环境

        下表列出了为各个平台添加的环境变量的名称和路径。

操作系统变量路径

Windows

PATH

matlabroot\extern\bin\win64

64 位 Apple Mac

DYLD_LIBRARY_PATH

matlabroot/extern/bin/maci64

64 位 Linux

LD_LIBRARY_PATH

matlabroot/extern/bin/glnxa64:matlabroot/sys/os/glnxa64

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值