编译包含 TCPIP 的脚本后的 Matlab 未知类错误
Posted
技术标签:
【中文标题】编译包含 TCPIP 的脚本后的 Matlab 未知类错误【英文标题】:Matlab Unknown class error after compiling script containing TCPIP 【发布时间】:2017-05-05 20:05:03 【问题描述】:我使用 MCR_R2015a 编译了一个使用仪器工具箱中的 tcpip
函数的脚本。在我用于编译的PC(Windows7)上运行生成的可执行文件不是问题,但是在另一台PC(Windows10,未安装Matlab)上运行它是。我收到以下错误:
unknown variable com or unknown class com.mathworks.toolbox.instrument.TCPIP
指向tcpip
中的第 123 行。周边代码为:
try
obj.jobject = handle(com.mathworks.toolbox.instrument.TCPIP(host,port));
catch aException
newExc = MException('instrument:tcpip:cannotCreate',aException.message);
throw(newExc); %%% this is line 123
end
显然com.mathworks.toolbox.instrument.TCPIP
是未知的。我试图找到定义此对象的文件以在编译失败时附加它。
在哪里可以找到该文件或如何编译正在运行的可执行文件?
【问题讨论】:
更新:在第二台PC(Win10)上安装Matlab后,在Matlab中运行脚本没有问题。然后,我再次使用 MCR_R2015a 在第二台 PC 上编译了另一个可执行文件。运行生成的 exe 我收到与上面相同的错误。 【参考方案1】:由于我能够在 Matlab 中运行脚本,但不能使用 Matlab 编译器运行时运行可执行文件,因此我认为 MCR 中未设置的路径可能会导致错误。
如果定义了 TCPIP 类的路径,则无法找到该文件,我最终卸载了 MCR。等等,它成功了!
我知道这个解决方案没有回答如何编译包含tcpip
函数的脚本并在没有安装 Matlab 的 PC 上运行生成的 exe 的问题。但这对我来说已经足够了。
【讨论】:
以上是关于编译包含 TCPIP 的脚本后的 Matlab 未知类错误的主要内容,如果未能解决你的问题,请参考以下文章
Debian系统中如何将matlab编译后的代码集成到c++中