MATLAB保护底层代码的两种方法 您所在的位置:网站首页 matlab代码看不懂 MATLAB保护底层代码的两种方法

MATLAB保护底层代码的两种方法

2023-05-28 12:13| 来源: 网络整理| 查看: 265

通常,我们使用MATLAB编辑的都是M文件,包括M函数文件和M脚本文件。但是当我们向用户提供服务时,显然不可能把自己的M文件打包发给他人,这不利于保护自己的算法和底层代码。那么,是否有什么办法可以让用户仅能获取服务而查看不到代码呢? 有,当然有,这里介绍两种容易实现的方法。 方法一:将M文件生成对应的P文件 P 文件是经过模糊处理的只执行形式的 MATLAB 代码,而且它的调用优先级要比M文件高,这意味着当M和P文件共处在一个路径下时,程序运行调用的是P文件而不是M文件。相对于M文件的可以打开,P文件不能在 MATLAB 编辑器或实时编辑器中被打开。 生成P文件的方法很简单,在命令行窗口中输入

pcode filename

如pcode wsy将在当前路径下生成与wsy.m文件相对应的wsy.p文件 如果要同时生成多个P文件,则使用

pcode filename1 filename2 filename3...

方法二:将所有M文件打包生成exe独立应用程序 相对于P文件而言,独立的应用程序exe文件的实用性更高,这意味着你提供给用户的是一个包装好、可以直接使用的“产品”,而不是一个个的代码文件。更何况,P文件需要在MATLAB平台上才能运行,这一局限性对用户来说是比较大的。 生成exe文件的方法也比较简单,举例来说 当前,我的工程里首先运行的是一个脚本文件Run_GUI.m,在后续的操作中陆续要调用两个脚本script1.m和script2.m,以及两个函数function1.m和function2.m,那么我需要在命令行窗口中执行以下代码

mcc -m Run_GUI.m script1.m script2.m function1.m function2.m

或者是

mcc -e Run_GUI.m script1.m script2.m function1.m function2.m

注:后面的脚本文件和函数文件顺序无所谓,但是首先运行的Run_GUI.m必须要放在第一位,这样生成的exe文件名就是Run_GUI.exe。 下面再来说说mcc -m和mcc -e的区别。 其中,使用mcc -m命令生成的exe文件在双击运行时会自动打开Windows命令提示符窗口,可以充当MATLAB的命令行窗口使用,程序运行的情况或者报错都将在该令提示符窗口中显示。而mcc -e生成的exe文件在执行时就不会打开Windows命令提示符窗口。

由上述mcc命令生成的exe应用程序可以脱离MATLAB而单独使用,但这并不意味着它不需要任何的组件支持。

MATLAB Runtime—— 无需安装 MATLAB 即可运行编译的 MATLAB 应用程序或组件,是一套独立的共享库。

Runtime就是我们在使用exe程序前需要安装的一个库,其版本示生成exe的MATLAB版本而定。比如,我使用matlab 2016a生成的exe,在没有安装Runtime的情况下运行时就会出现如下错误 在这里插入图片描述 Runtime的安装并不复杂,它的安装程序一般可以在已安装的MATLAB路径下找到\toolbox\compiler\deploy\win64 在我的2016版本中,进入该路径下有个MCRInstaller.exe程序,他就是我需要的Runtime安装程序。 或者可以在MATLAB的官网上选择对应的版本下载安装。 https://ww2.mathworks.cn/products/compiler/matlab-runtime.html 总结来说就是,MATLAB通过mcc命令生成的exe独立应用程序,可以脱离MATLAB单独运行,但是使用它的客户端需要有Runtime组件的支持。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有