IPPL 与 Matlab 编译器运行时 (MCR)

Posted

技术标签:

【中文标题】IPPL 与 Matlab 编译器运行时 (MCR)【英文标题】:IPPL with Matlab Compiler Runtime (MCR) 【发布时间】:2012-12-03 14:57:26 【问题描述】:

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

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

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

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

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

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

谢谢!

【问题讨论】:

不知道是不是各个环境部署的IPPL版本不一样? 【参考方案1】:

使用 Builder JA 创建的 Java 组件只有在不依赖于特定于平台的库(例如您创建的 MEX 文件或 Image Processing Toolbox 提供的 IPPL 库)时才是跨平台的。

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

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

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

【讨论】:

以上是关于IPPL 与 Matlab 编译器运行时 (MCR)的主要内容,如果未能解决你的问题,请参考以下文章

如何从不需要机器上的 Matlab 编译器运行时 (MCR) 的 matlab gui 生成可执行文件

如何在 Linux 终端中使用 MCR(Matlab 编译器运行时)运行 Matlab 文件?

如何检查 Matlab 编译器运行时 (MCR) 在我的电脑上是不是正常工作?

在同一台机器上运行 Matlab MCR 和 MATLAB

有没有办法在没有 mcr 的情况下在 matlab 中为 .m 文件创建 .exe 文件?

Windows 8 上的 Matlab 构建器 NE / MCR