如果你只是做简单的混合编程,不涉及加载其他动态库,按照mex指令出错下的要求去下载那个gcc,然后mex指令就可以用来编译c和cpp了。如果你需要加载动态库,且是vs2019编译的,那就最好配置一下vs2019的,避免一些莫名其妙的麻烦。首先在matlab指令下输入mex -setup -v,它会查找现有的编译器,具体原理应该是遍历注册表,但是前提有两个:
matlab添加vs2019配置文件
matlab查找路径添加2019: workshop\R2019b\bin\win64\mexopts,你看到这个文件夹就知道怎么操作了。缺少vs2019的配置文件的话,就不会去找版本是2019版本的。
如果没有,在这里下载,最后回答的那个答案里的zip文件:
https://www.mathworks.com/matlabcentral/answers/454296-can-i-use-microsoft-visual-studio-2019-with-matlab-r2019a-or-r2018b
vs2019添加注册表
上一步添加完成,可以直接使用mex指令在matlab上试试,如果你的vs2019以前有一些软件包,按理来说是会默认注册的,这样实际就可以直接使用了。
如果依旧报错,看看注册表,可能没注册,可以参考这个:vs2019 注册表操作
这个时候还是不行,那就是vs2019没有安装相应的SDK包,参考这个:vs2019 相应SDK下载
这时候应该就行了,我使用minGW和mingw-w64都没成功过,没找到原因,tdm64-gcc倒是安装好就可以用了,但是我的不能解析vs2019编写的动态库,只能配置vs2019了。
附带一些没用的小脚本