确保编译应用程序的多平台兼容性
编译的仅包含 MATLAB® 文件的 MATLAB 代码在不同平台上是兼容的,但有少数例外情况。您可以在任何平台上运行这些文件,前提是该平台已安装 MATLAB 或 MATLAB 运行时环境。有关 MATLAB 运行时的详细信息,请参阅关于 MATLAB Runtime。
以下组件只能在打包它们的同一平台上运行:
MEX 文件
如果您的编译后的 MATLAB 代码包含与平台相关的 MEX 文件,您可以采取以下措施使其在其他平台上运行。对于此示例,使用 中的文件 matlabroot\extern\examples\mexyprime.c。
在您想要运行应用程序的每个平台上编译一次 MEX 文件。
例如,如果您想在 Windows 64 位平台和 Linux 64 位平台上运行该应用程序,则需要编译两次
yprime.c:先在 PC 上编译一次,获得yprime.mexw64,然后在 Linux 64 位计算机上再次编译,获得yprime.mexa64。创建一个名为
callyprime.m的简单 MATLAB 函数,该函数调用yprime。function callyprime disp(yprime(1,1:4));在一个平台上编译该软件包,然后使用
mcc的-a选项或compiler.build函数的AdditionalFiles选项来包含在其他平台上编译的 MEX 文件。确保 Linux MEX 文件与 Windows MEX 文件位于同一文件夹中。例如,如果您在 Windows 计算机上创建一个 Java® 包,并且要确保该包可以在 Linux 64 位平台上运行,则应包括 Linux MEX 文件
yprime.mexa64。这里无需使用mcc -W 'java:myComp,myClass' callyprime.m -a yprime.mexa64
-A明确包含glnxa64架构,因为依赖关系分析过程会检测到 Linux MEX 文件并启用该平台。
MATLAB 工具箱
在 MATLAB 桌面环境中执行时可跨平台无缝运行的工具箱功能在部署后将继续跨平台无缝运行。但是,如果某个工具箱功能设计为在特定平台上运行,那么部署后该功能将仅在该特定平台上运行。例如,Data Acquisition Toolbox™ 的功能仅在 Windows 上运行。
Java JAR 文件
Java JAR 文件是平台独立的。但是,如果您向软件包添加了操作系统特定的依赖项或内容(例如 MEX 文件或 Simulink 仿真),则生成的存档仅限于兼容系统。您可以使用 mcc 和 -A 选项来覆盖限制。
MATLAB Compiler SDK™ 生成的 JAR 文件已经过测试,可以在 MATLAB 支持的平台上运行。有关详细信息,请参阅 MATLAB 平台路线图。
Web App
在大多数情况下,您可以在一个平台上生成 Web App 存档(.ctf 文件),并部署到在任何其他受支持平台上运行的服务器上。除非您向应用程序添加特定于操作系统的依赖项或内容(例如 MEX 文件或 Simulink 仿真),否则生成的存档是与平台无关的。