Linux 下Matlab的库的路径

zxt6405 2012-10-30 07:44:27
我在Linux下用C++去调用Matlab的代码。
已经把.m文件编译成so文件了,但是这个so文件里边还有很多未定义的变量。
按理说我应该去链接Matlab自身带的so文件。
但是在extern/lib下边只有三个.map文件,其他啥都没有。
我应该去哪里寻找哪些库?
我用的Matlab是2012A,在Ubuntu 12.04下。
...全文
419 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
oSherryLee 2013-06-03
  • 打赏
  • 举报
回复
楼主请问,你在调用 编译的SO时候,将程序放在/ETC/RC。LOCAL里不崩溃吗?我的一直崩溃状态,求解。
zxt6405 2012-10-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

locate xxx.so
find / -name "xxx.so"
[/Quote]
谢谢你的帮助。
不过这个方法我知道的,但是我是连要链接什么so文件都不知道,所以没法用这个方法……
zxt6405 2012-10-30
  • 打赏
  • 举报
回复 1
我自己搞定了,说一下怎么做的。
C和C++代码调用Matlab的代码的时候,需要透过一个MCLMCRRT代理层。
因此,需要链接Matlab的runtime文件夹下的mclmcrrt.so。
注:用nm去看这个so,是看不到任何可以开放的接口的。一开始我被这个假象给迷惑了。
链接这个库之后,就可以正常调用Matlab的代码了。
附上Matlab官网关于这个的介绍。
http://www.mathworks.cn/cn/help/compiler/c-shared-library-target.html
nossiac 2012-10-30
  • 打赏
  • 举报
回复
locate xxx.so
find / -name "xxx.so"
使用方法: 1.首先下载MATLAB 2017b linux版安装包,网上资源比较多,就不列举了。 下载完成后,在终端执行以下命令,挂载MATLAB安装镜像文件并安装。 sudo mkdir ./matlab sudo mount -t auto -o loop [YOUR_PATH]/Linux/R2017b_glnxa64.iso matlab/ cd ./matlab sudo ./install 2.安装过程中会让选择安装方法,这里最好先断开网络,然后选择“使用文件安装密钥(不需要Internet连接)”。文件安装密钥在Crack目录下的Readme.txt里,是一个串20位的数字。相应地接下来还要选择Crack目录下.lic文件作为license。在安装过程中要将“创建指向以下位置中的MATLAB脚本的符号链接”选项打勾。下面就等待安装完成就行了。 3.安装完成后,选择“不使用Internet手动激活”。需要输入许可证文件.lic的完整路径,这里选择Crack目录下的.lic就可以了。 4.将Crack/Linux文件夹下的libmwservices.so 复制到到 /usr/local/MATLAB/R2017b/bin/glnxa64。(最好在终端中执行sudo cp [libmwservices.so的路径]/libmwservices.so /usr/local/MATLAB/R2017b/bin/glnxa64,直接复制可能会有权限问题)这时应该就可以通过sudo matlab打开MATLAB软件了。下两步是可选的。 5.(可选)安装MATLAB支持包'sudo apt-get install matlab-support'。中间可选使用这款软件的用户以及重命名GCC,原文教程中说可以忽略。我把当前用户作为了使用这款产品的用户。 6.(建议选择)为了避免每次都用root权限打开matlab,通过sudo chown [your ubuntu username] -R ~/.matlab改变权限。最终直接在终端输入matlab就可以打开MATLAB了,至此完成了MATLAB在Ubuntu下的安装和破解。

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧