将.m库打包成MATLAB可执行文件

时间:2013-10-17 03:03:22

标签: linux matlab

我觉得这是一个相对基本的问题,但解决方案似乎超出了我的Google-fu。

设定:

我在〜/ project中有一个matlab项目,它在文件夹/ s / cplex / matlab中引用了一个matlab库(cplex)。我可以通过调用addpath(' / s / cplex / matlab')然后运行我的main()脚本来成功编译我的应用程序。

目标:

我想将我的项目构建为可执行文件,以便它仍然可以引用/ s / cplex / matlab。理想情况下,/ s / cplex / matlab将被打包到此可执行文件中,以便它可以移植。

问题:

我做这项工作的尝试都是徒劳的。我通过http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/进行了尝试并尝试了:

  1. 在运行可执行文件之前将/ s / cplex / cplex / matlab添加到LD_LIBRARY_PATH
  2. 在启动MATLAB之前将/ s / cplex / cplex / matlab添加到LD_LIBRARY_PATH,以便它在MATLAB上LD_LIBRARY_PATH
  3. 将/ s / cplex / cplex / matlab添加到MATLAB的deploytool中的Shared Resources and Helper Files面板
  4. 在编译之前通过addpath()将/ s / cplex / cplex / matlab添加到MATLAB路径
  5. 将/ s / cplex / cplex / matlab添加到MATLAB的deploytool中的Package面板
  6. 通过所有这些尝试,生成的可执行文件仍然无法找到cplex目录。将matlab可执行文件链接/打包到其.m依赖项的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

AHAH!固定它。

问题

对于遇到类似问题的人来说,问题确实与@符号有关。我正在使用AFS文件系统,它将文件路径中的@sys解析为机器/操作系统对。在我的路径中有'@sys'字符串,以保持它的通用性,MATLAB看到并误读为表示文件夹的关键字。

解决方案

我用实际的文件夹名称替换了所有出现的'@sys',MATLAB正确解析了它们。请注意,此解决方案并不是很明显,因为我使用的路径是带有'@sys'字符串的完整路径的符号链接。