使用Matlab编译器运行时(MCR)的IPPL

时间:2012-12-03 14:57:26

标签: matlab matlab-deployment

我正在尝试将应用程序从Matlab部署到JAVA。 我使用Matlab Builder JA和图像处理工具箱。 我使用MacOSX上的deploytool从Matlab R2012a创建我的jar文件。

当我在我的mac上使用这个jar运行我的JAVA程序时,没关系,但当我尝试在Linux或Windows系统上运行它时,我收到错误:

未定义的函数或变量'ipplmex'。 ==>中的错误伊普尔48岁 ==>中的错误imrotate> useIPP at 205

使用iptsetpref('UseIPPL',false)停用IPPL并不能解决我的问题。

我也使用Matlab R2011a在Linux环境中完成了相同的工作,它可以在Linux上运行,但在具有相同错误的MacOSX机器上运行。

如果有人在改变操作系统时对这个IPPL事情有所了解,那就太棒了。

谢谢!

1 个答案:

答案 0 :(得分:0)

使用Builder JA创建的Java组件只有在不依赖于特定于平台的库(例如您创建的MEX文件或图像处理工具箱提供的IPPL库)时才是跨平台的。

如果您希望Java组件使用IPPL,我认为您需要在Mac上创建一次Java组件,一次在Linux上创建,一次在Windows上创建,并使用在适当平台上创建的版本。

ipplmex是一个(特定于平台的)MEX文件,由ippl调用,它是一个实用程序函数,用于检查IPPL是否可用。我目前无法检查这一点,但我认为通过iptsetpref命令可以检查您是否已经指定要实际使用IPPL。因此,无论您是否指定应使用IPPL,仍然会调用特定于平台的MEX文件。

同样,我现在无法检查这一点,但如果您对不使用IPPL的组件感到满意,您可能会尝试修改ippl命令以返回零(表明IPPL不是可用)而不尝试执行ipplmex。 (在尝试任何修改之前,请务必获取现有ippl.m文件的副本。)