在使用Matlab 2019b/Simulink和SCANeR做联合仿真测试成功后,尝试利用Visual studio 2019将simulink模型编译为可执行文件(.exe),但是一直报错。
查看过相关同仁的文档,但是这个解决方法是都重装在C盘,奈何一生要强不信邪,最终成功,仅此Mark,给大家一个解决方法的思路,成败由人,不保真。
Matlab/Simulink在Viusal studio编译下无法生成可执行文件的一种解决方法_智驾仿真李慢慢的博客-CSDN博客_simulink生成可执行文件
不看全文看结果(血泪教训):要么装在系统盘,不装系统盘则安装路径没空格。
- 最开始报错时的安装路径(都是软件默认的路径,将C:\改为了E:\):
- Visual Studio:E:\Program Files (x86)\Microsoft Visual Studio\2019\Community
- MATLAB:E:\Program Files\Polyspace\R2019b
- SCANeR 2022:E:\Program Files\AVSimulation\SCANeR_2022
编译报错提示:fatal error U1052:未找到文件“\rtw\c\tools\vctools.mak”
往上翻发现,他找不到路径显示文件路径为“Files (x86)\Microsoft Visual Studio\2019\Community\xxxx”/"Files\Polyspace\R2019b\xxxxx"开头的“E:\Program ”因为空格被切断了。
- 不信邪,又重装Visual studio到C盘,其他没变,再次测试,再次报错,显示路径再次被空格切断。
- 发现MATLAB报错提示,当文件夹路径有空格(directory have spaces)的解决方法,查到到了windows关于长路径名变短路径名的8dot3name。
- 在管理员shell下设置fsutil 8dot3name set E:0(刚开始一直运行失败是因为这个冒号输入了英文冒号,正确应该输入中文冒号,什么坑爹玩意儿)
- 设置后C盘默认是开启了8dot3短命名,E盘开启了短命名(但是!!只有C盘会自动给过长的文件夹重名短文件名,所以把空格跳过去了,E盘找不到怎么自定义设置,也不会自己设置!!!)
- 如下图所示,所以装C盘的关键是因为它有短命名,避开了文件夹名称有空格的bug!!!
- 终成功!!但是还是重装了(不在系统盘,但是文件夹名称不得带空格),成功路径如下:
- Visual Studio:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
- MATLAB:E:\Polyspace\R2019b
- SCANeR 2022:E:\AVSimulation\SCANeR_2022