从不同的文件夹编译Matlab文件

时间:2012-10-18 16:47:53

标签: matlab path

我正在尝试在matlab中编译myfunction.m。此函数调用另一个文件夹中定义的另一个函数(otherfunction.m)。这个折叠被添加到matlab路径,所以如果我运行:

myfunction
来自Matlab Command Window的

一切正常。

如果我尝试编译为:

mcc -m myfunction.m -I /CompletePathToOtherFunction otherfunction.m

exe文件不起作用。我该如何管理?

1 个答案:

答案 0 :(得分:2)

来自文档:

“在命令行上传递-I:

您可以使用-I选项将文件夹添加到路径列表的开头 用于当前编译。编译时,此功能非常有用 当前不在MATLAB路径上的文件夹中的文件。“

所以在-I之后我认为你应该把路径传递给包含otherfunction.m的目录,而不是otherfunction.m本身的路径。

要检查的其他一些事项:

  • 使用which otherfunction确保您使用正确版本的otherfunction(如果存在多个版本)。如果路径上的两个函数具有相同的名称,则Matlab默认默认为路径中较高者。

  • 如果您编译的代码使用eval调用函数,那么您将需要提供包含该函数的目录(或显式提供该函数),即使该目录位于matlab路径上

  • 如果所有其他方法都失败了,请尝试使用GUI编译器而不是mcc命令。要调出GUI,只需在命令窗口中键入deploytool即可。一旦你在GUI中选择了一个项目位置并指定了一个“控制台应用程序”(或者你想要的任何其他东西),那么你点击“添加主文件”链接并添加myfunction.m。然后查找链接“添加其他引用/文件夹”(或类似的东西),单击它,然后手动添加包含otherfuncion.m和secondfunction.m的目录。