我想问一下关于如何在Ubuntu 16.04中通过g ++编译使用MATLAB引擎的C++代码的分析说明。编译在Ubuntu 16.04中使用MATLAB Engine的C++代码,通过g ++
出于您的回答的目的,假设您使用默认matlab安装提供的示例代码之一来达到此目的。
请在回答时考虑我是一名初学者,使用linux,g ++和gcc编译工具。
我想问一下关于如何在Ubuntu 16.04中通过g ++编译使用MATLAB引擎的C++代码的分析说明。编译在Ubuntu 16.04中使用MATLAB Engine的C++代码,通过g ++
出于您的回答的目的,假设您使用默认matlab安装提供的示例代码之一来达到此目的。
请在回答时考虑我是一名初学者,使用linux,g ++和gcc编译工具。
我假设你想知道从Linux终端使用g ++编译C++代码(调用MATLAB引擎)的过程。为此,请按照下列步骤操作:
包含在PATH变量以下路径:
一)的位置MATLAB即$ matlabroot/bin中 B)$ matlabroot/SYS/OS
您可以使用命令 'setenv PATH $ matlabroot/bin:$ matlabroot/sys/os:$ PATH'来执行此操作。
在命令提示符下,使用cd命令导航到cpp代码所在的目录。例如,如果您正在编译engdemo.cpp,则需要导航到$ matlabroot/extern/examples/eng_mat/engdemo.cpp
您需要使用所需的包含文件和库调用编译器。为此,您可以使用-I和-L开关。请注意,订单很重要。所以你需要使用如下命令:
g ++ engdemo.cpp -I“$ matlabroot/extern/include”-L“$ matlabroot/bin/glnxa64”-leng -lmat -lmex -lut -o engdemo。 o
上述命令将生成一个对象文件engdemo.o。要执行此操作,请使用命令./engdemo.o
有关C++和MATLAB的更多帮助,可以参考http://www.umiacs.umd.edu/~jsp/Downloads/MatlabEngine/MatlabEngine.pdf的文档。
在C/C编译过程++分两个阶段被划分:
首先,源代码被转换为与倍数机器代码的编译对象文件(.o或.OBJ)。
然后,将目标文件转换为单个可执行文件(.dll或.exe)的链接。
C/C++运行MATLAB发动机需要三件事节目:
1>一种编译器,该用MATLAB引擎兼容。
2>引用API头文件(用于c的'。h'或用于C++的'.hpp')用于编译。
3>引用库('。lib'for windows,'。so'for linux)用于外部符号链接。
您可以看到基于Linux的兼容系统编译器here。 GCC C/C++ 4.9.x兼容,所以你可以使用g ++。
由于这pdf建议,API头文件应该有$ matlabroot /的extern /包括和.so文件应该在$ matlabroot/ 斌/ glnax64其中$ matlabroot是您的MATLAB安装文件夹
设置环境变量
打开与CTRL + ALT + T和类型的temnial:
setenv PATH $matlabroot/bin:$matlabroot/sys/os:$PATH
那么你可以去到源文件所在的文件夹,假设$ matlabroot /的extern /例子/ eng_mat/使用下面的命令:
cd $matlabroot/extern/examples/eng_mat/
你需要做的与编译:
g++ -c engDemo.cpp -I '$matlabroot/extern/include' -leng -lmat -lmex -lut
之后,应该创建一个名为engDemo.o文件。 的-leng -lmat -lmex-LUT选项可能需要之间因为MATLAB解释器/使用应位于$ matlabroot斌
并与外部符号链接的其他东西:
g++ -o engDemo -L '$matlabroot/bin/glnax64'
要小心,因为这条路sugested你是一个x64体系结构机器上,如果你不是,路径可能会略有不同。
然后,你可以通过做./engDemo
执行文件我不能安装在我使用的,所以我无法测试我给你的指令laptot Matlab引擎,但它应该是这样做。
希望它有帮助!