2012-12-03 39 views
2

我试图从Matlab部署一个应用程序到JAVA。 我使用Matlab Builder JA和图像处理工具箱。 我使用Mac OS X上的deploytool从Matlab R2012a创建我的jar文件。带Matlab编译器运行时(MCR)的IPPL

当我运行使用我的Mac上这个瓶子我的JAVA程序,这是好的,但是当我试图在Linux或Windows系统上运行它,我得到的错误:

未定义的函数或变量“ipplmex” 。 错误==> IPPL在== 48 错误> imrotate> useIPP在205

停用与iptsetpref使用IPPL的( 'UseIPPL',FALSE)不解决我的问题。

我也使用Matlab R2011a完成了与Linux环境完全相同的工作,它适用于Linux,但不适用于具有相同错误的MacOSX计算机。

如果有人在更改操作系统时有关于此IPPL事情的想法,那将非常棒。

谢谢!

+0

我不知道在每个环境中部署的IPPL版本是否不同? –

回答

0

如果使用Builder JA创建的Java组件不依赖特定于平台的库(例如您创建的MEX文件)或Image Processing Toolbox附带的IPPL库,则使用Builder JA创建的Java组件仅为跨平台组件。

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

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

此外,我目前无法检查此问题,但如果您对使用IPPL的组件不熟悉,则可以尝试修改ippl命令以仅返回零(表示IPPL不可用),而无需试图执行ipplmex。 (在尝试进行任何修改之前,请务必拍摄现有ippl.m文件的副本)。