本文主要介绍MATLAB 2019a中添加Visual stutio 2017为编译器。本人是用于对Simulink slrt(2015前叫XPC)的支持。

 

这个问题的关键在于安装过程中要添加好simulink slrt需要的各种支持插件。如果你的硬盘足够庞大,那么你完全可以安装全部插件,需要大概50G空间,那么一定没问题。

因为本人使用了 Microsoft surface,硬盘空间十分有限,总共120G,win10系统耗掉了一小半,安装了MATLAB又耗掉了 20多G空间,还有一些杂七杂八的软件,剩余空间不到40G,所以需要有取舍的安装VS2017了。

本文主要参考了《How do I set up MS Visual Studio 2017 for SLRT? 》一文,在此表示特别感谢。由于原文是英本,在此我将对其过程进行简述。原文可见https://www.mathworks/matlabcentral/answers/348269-how-do-i-set-up-microsoft-visual-studio-2017-for-slrt

关于Visual Studio 2017的版本,本人建议就下载社区版(Community)就好,无需破解,完全够用。当前的Visual Studio 都是在线安装,这点能看出VS对自身权益的保护。

Visual Studio下载可到官网https://visualstudio.microsoft/zh-hans/vs/older-downloads/。有各种版本,对于MATALB 2019本人建议下载Visual Studio 2017。

 

下面说下一主要步骤:

 

1) Begin installing your edition of Visual Studio 2017 as normal or if you have already installed Visual Studio 2017, run the Visual Studio Installer and skip to step (3) in this section.

这点没啥说的,就运行exe,开始安装,他这个安装的应该不是Community版本,但是都一样,没有啥大区别。

2) Once Visual Studio 2017 is installed, the buttons Update, Launch, and a hamburger menu will appear.

出现这个界面

3) Click on the hamburger menu and choose Modify.

点击Launch右边的那个更多按键(三道杠),里面的Modify按键,Community版本应该是更多一些选项,选择Modify就对了。

4) This will bring up the "Modifying" dialog box.

这步是重点了,按照下面的图,首先你要安装基本的C++和.NET等开发环境,至于下面的Web&Cloud啥的应该不选也行。

然后选择individual compoment,转到第5步

5) Click on the Individual components tab.

 

参考下图,选中 Windows 10 SDK, VC++ 2017 toolset (v141 tools) ,以及下面的 Visual Studio C++ 核心特性:

- Windows 10 SDK (10.0.17134.0 or earlier) under SDKs, libraries, and frameworks.

- VC++ 2017 version 15.8 v14.15 under Compilers, build tools, and runtimes (latest v141 tools or VC++ 2017 15.8 v14.15 latest v141 tools if the given option is not available).

- Visual Studio C++ core features under Development Activities.

注意:不要安装 Windows 10 SDK (10.0.17763.0) or a later version. 这会引起错误 (Unable to load DLL dependency: kernel32.dll.GetFileSizeEx).

点击右下角的Modify按键,向下继续安装。

6) Visual Studio 2017 will now start adding the necessary components to its installation.

进行安装过程,等待......

如此VS2017安装完毕,开始在MATLAB中配置编译器为Visual Studio 2017 Compiler

在MATLAB中执行

>>mex -setup

选择Microsoft Visual C++ 2017 (C)

出现类似以下界面表示成功!

 

>> mex -setup
MEX 配置为使用 'Microsoft Visual C++ 2017 (C)' 以进行 C 语言编译。
警告: MATLAB C 和 Fortran API 已更改,现可支持
     包含 2^32-1 个以上元素的 MATLAB 变量。您需要
     更新代码以利用新的 API。
     您可以在以下网址找到更多的相关信息:
     https://www.mathworks/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html。

要选择不同的语言,请从以下选项中选择一种命令:
 mex -setup C++ 
 mex -setup FORTRAN
 

 

然后执行slrtsetCC setup命令

注意,在MATLAB2019中需要执行slrtsetCC命令,在R2016b and R2017a,中不需要执行。

同样选择 Microsoft Visual C++ 2017 (C)为编译器。

出现类似以下界面表示成功!

>> slrtsetCC setup

Select your compiler for Simulink Real-Time.

[1] Microsoft Visual Studio 2017 in C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\

[0] None


Compiler: 1

Verify your selection:

Compiler: Microsoft Visual Studio 2017
Location: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\

Are these correct [y]/n? y

Done...

到此,就配置好了,就可以开始你的Simulink real time之旅了。

搞完之后才发现,MALTAB为了赚钱,在2017以后的版本里取消了对各种硬件板卡的驱动支持,在dSpace之后竟然又出了一个speedgoat的东西,这个让人很不爽。普通的穷学生等用户就只能使用UDP,串口等简单的驱动支持了。以前版本对各种IO,AD,DA板卡都歇菜了。

关于speedgoat感兴趣可以看看https://ww2.mathworks/help/xpc/io_ref/speedgoat-hardware.html

关于2017版本对板卡的支持情况,可以参见https://zhaodi.me/how-to-use-non-speedgoat-io-blocks-in-matlab-2017b/。本人没有试过,不知道行不行。

最后体会,为了对硬件更好的支持,本人建议还是使用2017以前的MATLAB版本吧,比如MATLAB2012a,我看就挺好。

不过咱们学生一般是通过科学合理的方法安装并使用MATLAB的,那个Crack有个5年的限制,这个也是MATLAB对自己保护的一种有效手段吧。不过这个也难不倒我们华国栋梁,对吧,如果只是一般的学习科研的话就把系统时间向前改几年就好了。

就写到这吧。这是本人CSDN的处女之作,作为2020年这个不平凡年度的劳动节纪念吧。

 

 

 

 

 

 

 

更多推荐

MATLAB 2019a中添加Visual stutio 2017为编译器