我需要有关在使用g ++的Ubuntu环境中如何使用MATLAB引擎编译c ++源代码的说明。
对于这种情况,我们假设提供了默认的matlab安装示例代码。
我假设您想了解使用Linux Terminal中的g ++编译c ++代码(调用MATLAB引擎)的过程。为此,请按照以下步骤操作:
在PATH变量中包括以下路径:
a)MATLAB的位置,即$ matlabroot / binb)$ 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” -len -lmat -lmex -lut -o -engdemo.o
上面的命令将生成一个目标文件engdemo.o。要执行此操作,请使用命令./engdemo.o
您可以参考http://www.umiacs.umd.edu/~jsp/Downloads/MatlabEngine/MatlabEngine.pdf的文档,以获取有关C ++和MATLAB的更多帮助。
C / C ++中的编译过程分为两个阶段:
首先,将源代码转换为具有多个目标文件(.o或.obj)的机器代码的编译。
然后是将目标文件转换为单个可执行文件(.dll或.exe)的链接。
运行matlab引擎的C / C ++程序需要三件事:
1>与matlab引擎兼容的编译器。
2>引用用于编译的API头文件(对于c是'.h'或对于c ++是'.hpp')。
3>对库的引用(对于Windows,为'.lib',对于Linux为'.so'),用于外部符号链接。
您可以看到基于linux的兼容系统编译器here。GCC C / C ++ 4.9.x是兼容的,因此您可以使用g ++。
正如此pdf所建议的,API头文件应位于$ matlabroot / extern / include,而.so文件应位于$ matlabroot /bin / glnax64,其中$ matlabroot是您的matlab安装文件夹
设置环境变量
使用ctrl + alt + T]打开您的temnial,然后键入:
,即源文件所在的文件夹:setenv PATH $matlabroot/bin:$matlabroot/sys/os:$PATH
然后您可以使用以下命令转到$ matlabroot / extern / examples / eng_mat /
进行编译cd $matlabroot/extern/examples/eng_mat/
您需要使用:
中的matlab解释器,因此可能还需要-leng -lmat -lmex -lut选项。g++ -c engDemo.cpp -I '$matlabroot/extern/include' -leng -lmat -lmex -lut
之后,将创建一个名为engDemo.o的文件。由于需要使用位于$ matlabroot / bin
以及外部符号与:
计算机,否则,该路径可能会略有不同。g++ -o engDemo -L '$matlabroot/bin/glnax64'
请小心,因为此路径表明您使用的是x64体系结构
然后您就可以通过执行./engDemo执行文件了>
我无法在正在使用的laptot上安装matlab引擎,因此我无法测试我给您的指令,但应以这种方式完成。
希望有帮助!