我有一个必须编译才能部署的 MATLAB 脚本。我正在使用命令“mcc”,但是,我还需要包含工具箱:PRTools(http://37steps.com/software/)和 dd_tools(http://prlab.tudelft.nl/david-tax/ dd_tools.html)。我正在尝试使用命令 addpath() 来包含它,但它不起作用。我不知道如何包含这些工具箱。我尝试使用:
if ~isdeployed
addpath PRTools
addpath dd_tools
end
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
对于使用 进行部署mcc
,您应该在编译应用程序之前将路径添加到您的 MATLAB 路径中(使用pathtool
或addpath
),而不是addpath
从您的代码中调用 。
mcc
静态分析您的代码以确定需要包含在可执行文件中的内容。此静态代码分析的一部分包括查找代码中的所有函数调用并定位相应的源文件。既然你调用addpath
从内你的代码,MATLAB是无法正确定位所有的工具箱功能(因为它们在运行时添加到路径动态和代码静态分析),并会忽略这些文件。
如果您先将它们添加到您的 MATLAB 路径中,mcc
将能够静态分析您的代码,找到所有需要的工具箱函数,并将它们包含在生成的可执行文件中。
修改路径的一种更简洁的替代方法是在调用时使用该-I
选项mcc
来指定要包含的特定文件夹。
-I
将新文件夹路径添加到包含的文件夹列表中。每个-I
选项都会在要搜索的路径列表的开头添加一个文件夹。例如,
-I <directory1> -I <directory2>
设置搜索路径,以便
directory1
首先搜索 MATLAB 文件,然后搜索directory2
. 此选项对于 MATLAB 路径不可用的独立编译很重要。
对于您的情况,这将类似于
mcc -m main.m -I PRTools -I dd_tools
Run Code Online (Sandbox Code Playgroud)