您现在的位置是:首页 >技术交流 >MATLAB配置C/C++库(Visual Studio,MinGW-w64 C/C++ 编译器)问题(包括低版本matlab配置高版本VS)网站首页技术交流

MATLAB配置C/C++库(Visual Studio,MinGW-w64 C/C++ 编译器)问题(包括低版本matlab配置高版本VS)

恩泽君 2023-05-12 20:11:22
简介使用matlab加载C语言的库函数时,需要提前配置好C/C++编译器,否则在matlab中使用 loadlibrary 加载C /C++库中的函数时候,会报错:"未找到支持的编译器或 SDK。您可以安装免费提供的 MinGW-w64 C/C++ 编译器;请参阅安装 MinGW-w64 编译器。有关更多选项,请访问 http://www.mathworks.com/support/compilers/R2017a/。"

问题描述

使用matlab加载C语言的库函数时,需要提前配置好C/C++编译器,否则在matlab中使用 loadlibrary 加载C /C++库中的函数时候,会报错:

“未找到支持的编译器或 SDK。您可以安装免费提供的 MinGW-w64 C/C++ 编译器;请参阅安装 MinGW-w64 编译器。有关更多选项,请访问 http://www.mathworks.com/support/compilers/R2017a/。”

解决办法

可以通过安装Visual Studio来解决,但是当低版本Matlab和安装高版本VS时候,还是有很多问题,包括低版本matlab缺少相关配置xml文件,并且还需要添加注册表。

下面是解决办法:

步骤1:安装Visual Studio

注意,这步很关键,这里可以安装各种版本VS(2022,2021,2020,2019,,,),都可以,但是在安装时候,需要你勾选“使用C++的桌面开发”这栏,如下图:
在这里插入图片描述

步骤2:配置Matlab相关配置文件

如果你的matlab版本比VS低,需要你手动添加相关配置文件,如下文件“msvc2022.xml”,“msvcpp2022.xml”,这里需要根据你的安装VS版本对应下载,当然也可以自己修改老版本xml文件进行修改,参考
在这里插入图片描述
以上操作完了就在matlab命令行输入mex -setup -v,看是否不报错,如果还是报错,表示可能需要添加注册表,因此进行步骤3.

步骤3:添加注册表(可选)

win+R打开运行界面,输入regedit,然后在下面路径进行设置

在如下路径下(相关文件没有的话,就添加项目,如SxS没有,就新建一个就行)添加字符串17.0(这个设置好像关系不大,可以设置为VS版本号),然后数据设置为VS的安装路径(比如我这里安装到自定义文件夹“VS2022”,你就只需要设置到这一层文件夹就行)。
在这里插入图片描述
最后matlab命令行输入mex -setup -v验证就行。

参考资料:
【1】让MATLAB2018b支持VS2019的mex配置

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。