【问题标题】:build a standalone application from Matlab code从 Matlab 代码构建一个独立的应用程序
【发布时间】:2011-10-21 10:23:50
【问题描述】:

我有一些 Matlab 代码和一个 GUI,我想制作一个独立的应用程序来保护我的源代码。如何独立构建这个? 感谢您的任何指导。

================================================ ===================================

我在帮助中找到:

如果您不想以这种格式分发您的专有应用程序代码,您可以使用以下更安全的选项之一:

• 部署为 P 代码 — 将您的部分或全部源代码文件转换为称为 P 代码文件的内容隐藏形式(来自其 .p 文件扩展名),并以此格式分发您的应用程序代码。

• 编译成二进制格式 — 使用 MATLAB 编译器编译您的源代码文件以生成一个独立的应用程序。将后者分发给应用程序的最终用户。

使用 P 代码很简单,没有问题。

构建独立的可执行文件

另一种保护源代码的方法是将其构建为独立的可执行文件,并将该可执行文件与任何其他必要的文件一起分发给外部客户。您必须安装 MATLAB 编译器和受支持的 C 或 C++ 编译器才能准备部署文件。但是,最终用户不需要 MATLAB。

要为您的 MATLAB 应用程序构建一个独立的应用程序,请按照 MATLAB 程序文件的常规过程开发和调试您的应用程序。然后,按照 MATLAB 编译器文档中的程序员部署到最终用户的步骤中的说明生成一个或多个可执行文件。

  1. 创建一个包,其中包含运行时所需的软件。看看程序员需要什么软件?了解更多详情。

要将使用 MATLAB Compiler 创建的独立应用程序分发到开发机器,请创建一个包含以下文件的包。

MCRInstaller.exe (Windows)

MCRInstaller 是一个自解压可执行文件,可安装开发应用程序所需的组件。该文件包含在 MATLAB 编译器中。

application_name.exe (Windows)

由 MATLAB 编译器创建的应用程序。 Maci64 必须包含捆绑目录层次结构。

【问题讨论】:

  • MATLAB 文档写得很好,有很多例子。从它开始。

标签: matlab matlab-deployment matlab-compiler source-code-protection


【解决方案1】:

您不必部署独立的应用程序来保护您的代码:您可以从您的 M 文件中生成一个 P-code 文件,这是一种混淆源代码的方法。

【讨论】:

  • 使用 P 代码很简单,但我想要一个 .exe 文件,以便最终用户使用它。
【解决方案2】:

Mathworks 提供了一个工具包 ($$),用于将您的 MATLAB 程序编译为可执行 (.exe) 文件,该文件无需 MATLAB 许可即可在任何具有 Matlab 编译器运行时 (MCR) 的计算机上运行。

所以流程看起来像:

  1. 开发 MATLAB 应用程序(一组 m 个文件)
  2. 创建简单的 matlab 脚本以利用 Matlab 编译器(例如 make.m)
  3. 运行 make 脚本以创建 MyApplication.exe
  4. 为您的用户部署 MyApplication.exe 和 Matlab 编译器运行时 (MCR)

Details 可以在 Mathworks 网站上找到。

【讨论】:

  • 请您解释一下 No.2。我怎么能找到这个工具包。我已经下载了一个 PDF 文件 Matlab7 External Interfaces 826 页!我应该搜索什么?
  • 如果您从 Mathworks 购买了 ($$) Matlab 编译器,这些步骤是您将使用的所有步骤。如果您希望将代码部署给可能没有 matlab 的最终用户,那么这就是您要走的路。使用标准 matlab 安装,您无法将 MATLAB 应用程序编译为 exe。然而,正如其他用户指出的那样,您可以通过其他方式混淆您的代码(但仍需要安装 matlab 才能运行)。
【解决方案3】:

我认为您已经被 .exe 文件的吸引力所吸引。如果您的目标是 IP 保护,那么 .p 代码就足够了。如果您的目标是拥有一个 .exe 文件,那么这不仅仅是 IP 保护。

其他人已经表示文档简单明了。 Here is a very simple step-by-step example 用于创建编译示例,使用 Matlab 编译器。请记住,您需要购买编译器,或者如果您想看看它是如何完成的,至少要使用试用版。

【讨论】:

  • 就GUI而言,这些方面会在.exe中可靠地编译和传输吗?
猜你喜欢
  • 2011-03-13
  • 1970-01-01
  • 2010-09-06
  • 1970-01-01
  • 2017-12-09
  • 1970-01-01
  • 2018-09-21
  • 1970-01-01
  • 2014-06-25
相关资源
最近更新 更多