2

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

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

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

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

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

如果有人在更改操作系统时对这个 IPPL 事情有想法,那就太好了。

谢谢 !

4

1 回答 1

0

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

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

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

同样,我目前无法检查这一点,但如果您对不使用 IPPL 的组件感到满意,您可以尝试修改ippl命令以仅返回零(表示 IPPL 不可用)而不尝试执行ipplmex. ippl.m(在尝试任何修改之前,请确保复制现有文件)。

于 2012-12-03T16:18:40.183 回答