首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用MATLAB和g++编译g++源文件

利用MATLAB和g++编译g++源文件
EN

Stack Overflow用户
提问于 2017-03-21 20:17:03
回答 2查看 923关注 0票数 8

如果您能够提供一些关于如何在Ubuntu环境中编译c++源代码文件的指导,使用MATLAB和g++,将会很有帮助。

EN

回答 2

Stack Overflow用户

发布于 2017-03-26 15:59:14

我假设您想知道使用Linux中的c++编译g++代码(调用MATLAB )的过程。要做到这一点,请执行以下步骤:

  1. 在PATH变量中包括以下路径: ( a) MATLAB的位置,即$matlabroot/bin b) $matlabroot/sys/os 您可以使用命令'setenv PATH $matlabroot/bin:$matlabroot/sys/os:$PATH‘来实现这一点。
  2. 在命令提示符中,使用cd命令导航到cpp代码所在的目录。例如,如果您正在编译$matlabroot/extern/examples/eng_mat/engdemo.cpp,则需要导航到engdemo.cpp
  3. 您需要用必需的包含文件和库来调用编译器。为此,您可以使用-I和-L交换机。请注意,订单很重要。因此,您需要使用下面的命令: g++ engdemo.cpp -I“$matlabroot/extern/包含”-L“$matlabroot/bin/ -lmex 64”-leng -lmat -lmex -lut -o engdemo.o
  4. 上面的命令将生成一个对象文件engdemo.o。若要执行此操作,请使用命令./engdemo.o 有关http://www.umiacs.umd.edu/~jsp/Downloads/MatlabEngine/MatlabEngine.pdf和MATLAB的更多帮助,您可以参考C++的文档。
票数 4
EN

Stack Overflow用户

发布于 2017-03-31 15:40:00

C/C++的编译过程分为两个阶段:

首先,将源代码转换为带有多个对象文件(.o或.obj)的机器代码的编译。

然后,将对象文件转换为单个可执行文件(.dll或.exe)的链接。

运行matlab引擎的C/C++程序需要三样东西:

1>与matlab引擎兼容的编译器。

2>引用API头文件(c的“.h”或c++的“.hpp”)进行编译。

3>引用外部符号链接的库( windows的“.lib”,linux的“.so”)。

您可以看到可压缩的基于linux的系统编译器这里。GCC C/C++ 4.9.x兼容,因此可以使用g++。

正如这个API头文件所建议的,API头文件应该在$matlabroot/extern/include中,.so文件应该在$matlabroot/ bin/glnax64 64中,其中$matlabroot是matlab安装文件夹。

设置环境变量

使用ctrl + alt + T打开您的temnial,并键入:

代码语言:javascript
复制
setenv PATH $matlabroot/bin:$matlabroot/sys/os:$PATH

然后,您可以转到源文件所在的文件夹,让我们使用下面的命令假设为$matlabroot/extern/examples/eng_mat/

代码语言:javascript
复制
cd $matlabroot/extern/examples/eng_mat/

您需要使用:进行编译

代码语言:javascript
复制
g++ -c engDemo.cpp -I '$matlabroot/extern/include' -leng -lmat -lmex -lut

之后,应该创建一个名为engDemo.o的文件。由于使用了应该位于$matlabroot/bin中的matlab解释器,可能需要使用-leng -lmat -lmex -lut选项。

和外部符号链接:

代码语言:javascript
复制
g++ -o engDemo -L '$matlabroot/bin/glnax64'

尽管这条路径假定您是在x64体系结构机器上,但是如果不是,则路径可能略有不同。

然后只需执行./engDemo即可执行您的文件。

我不能在我正在使用的笔记本上安装matlab引擎,所以我无法测试我给你的指令,但是应该这样做。

希望能帮上忙!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42937348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档