更换Windows专业账户后Simulink编译失败求助(C1083错误)
针对MATLAB R2020A搭配Visual Studio 2019编译Simulink模型时出现的rt_matrx.c(29): fatal error C1083: Unable to open include file: 'stdlib.h' : No such file or directory报错,结合更换账户后出现问题的背景,给出以下排查与解决步骤:
确认MATLAB与VS编译器的关联有效性
打开MATLAB,执行命令mex -setup,选择Visual Studio 2019作为C/C编译器。若列表中未出现VS2019,说明MATLAB未识别到编译器,需检查VS是否完整安装了**桌面开发C工作负载**(必须包含MSVC工具集、Windows SDK组件,默认安装VS可能遗漏该工作负载)。验证VS环境变量在当前账户的生效性
- 打开CMD,输入
cl,若提示“找不到命令”,说明VS的环境变量未配置到当前账户。 - 找到VS2019的Build工具路径(例:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build),运行vcvars64.bat(适配64位MATLAB),随后启动MATLAB尝试编译。 - 也可手动将以下路径添加到系统PATH:
- VS工具集bin目录(例:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64,版本号需匹配自身安装的VS) - Windows SDK的ucrt include目录(例:
C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\ucrt,SDK版本需匹配)
- VS工具集bin目录(例:
- 打开CMD,输入
检查MATLAB编译器配置文件路径
找到MATLAB安装目录下的bin\win64\mexopts文件夹(例:C:\Program Files\MATLAB\R2020a\bin\win64\mexopts),打开msvc2019.xml文件,确认<INCLUDE>节点包含Windows SDK的ucrt目录与VS的MSVC include目录。若路径错误,需以管理员权限修改配置文件。验证stdlib.h文件的存在性
前往Windows SDK的ucrt include目录(上述路径)确认stdlib.h是否存在。若缺失,需重新安装VS的桌面开发C++工作负载,勾选所有必要组件。尝试以管理员身份启动MATLAB
右键MATLAB图标选择「以管理员身份运行」,排除账户隐性权限对路径访问的限制。重置MATLAB路径
在MATLAB中依次执行:restoredefaultpath rehash toolboxcache重启MATLAB后再次尝试编译,避免自定义路径干扰。
内容的提问来源于stack exchange,提问作者K. Dos Santos

