【发布时间】:2015-02-09 10:59:16
【问题描述】:
我知道有很多关于这个主题的帖子,这可能是重复的,但我不这么认为。我的配置是:Matlab R2014b,clang 3.4,Ubuntu 14.04,armadillo-4.600.4。
我有一个本地安装的犰狳(不是系统方面的,所以手动包括/链接),在 Matlab 之外可以正常工作。 我正在尝试使用 Matlab 中的 Armadillo 运行 Mex 文件。使用命令(简称截断)可以很好地编译:
mex -compatibleArrayDims -outdir +mx -L/home/john/.local/arma/lib -larmadillo -I/home/john/.local/arma/include test_arma.cpp
问题是当我尝试运行它时出现此错误:
Error using mx.test_arma
Invalid MEX-file '/path/to/+mx/test_arma.mexa64': libarmadillo.so.4: cannot open shared object file: No such file or directory
从启动 Matlab 的 shell 中回显的环境变量 LD_LIBRARY_PATH 包含 /home/john/.local/arma/lib(其中 libarmadillo.so 是),我还使用 setenv('LD_LIBRARY_PATH',...) 在 Matlab 中手动添加了此路径。我有什么遗漏吗?
【问题讨论】:
-
我现在没有链接,但 MATLAB 对
LD_LIBRARY_PATH很感兴趣。也许先尝试一个符号链接。另外,您确定添加到路径的依赖项是 64 位的。我不知道 Ubuntu 的文件夹结构。 -
@chappjc 您对 64 位的评论很有趣,我将仔细检查所有内容,并从头开始重新编译我的共享库以确保没有不匹配,因为正如我所说的那样现在得到段错误,我相当有信心它不是来自代码本身。
标签: matlab shared-libraries mex armadillo