最近在研究c++调用matlab函数时遇到了一个非常头疼的问题!!!
1、问题描述
(1)在c++调用matlab后,对c++代码进行封装(.exe),封装后在未安装matlab的电脑上运行,尽管在c++工程中已经包含了各种DLL,但是仍然无法正常运行!!!
(2)最后才发现尽管执行机上安装matlab是非必要的,但是配置matlab运行环境却是必要的;在不安装matlab的情况下,安装MCRinstaller也可以配置matlab运行环境!!!
2、c++调用matlab函数
参考链接:
C++调用matlab函数(未安装 matlab 也可以使用)_一米九零小胖子的博客-CSDN博客_c++调用matlab
3、MCR的安装
(1)找到MCRinstaller.exe
方式一:在matlab的安装目录:D:\MATLAB\R2016a\toolbox\compiler\deploy\win64 中找到MCRinstaller.exe 然后直接安装即可(直接下一步);
方式二:打开matlab在命令框输入:mcrinstaller 回车查看MCRinstaller.exe的位置,然后安装即可;
方式三:在官网下载对应版本MCRinstaller.exe
下载地址:MATLAB Runtime - MATLAB Compiler - MATLAB
说明1:如果该路径下没有MCRinstaller.exe,则可以通过在matlab命令框中输入:compiler.runtime.download在线下载MCRinstaller.exe;
说明2:matlab2019及后版本,从官网下载的MCR便不再是 MCRinstaller.exe ,而是一个独立安装包,在下载安装包后需要点击setup.exe后方可使用,系统默认自动添加环境变量和地址,然后可直接进行c++工程封装后的.exe;
(2)安装包内容如下
win7系统下安装MCR参考:win7 下MCR的安装以及环境变量配置_mingo_敏的博客-CSDN博客_mcr环境
注意事项!!!
非常重要!!!
如果 matlab 代码中涉及到读取某个文件夹下的文件,则在 c++ 调用时需要将被读取文件放到和 matlab 代码中路径相对应的文件夹下,否则会出现闪退情况!!!