构建过程的问题是由“模型”中的下列行引起的。可“makefile。mk文件包含以下代码:
MATLAB_ROOT = C:\Program Files\MATLAB\R2013a
ALT_MATLAB_ROOT = C:\Program Files\MATLAB\R2013a
matlab_bin = c:\ program files \ matlab \ r2013a \ bin
ALT_MATLAB_BIN = C:\Program Files\MATLAB\R2013a\bin
由于MATLAB_ROOT和ALT_MATLAB_ROOT变量具有相同的值,因此Makefile使用MATLAB_ROOT值与空格。构建过程不知道如何处理路径中空格的文件。MATLAB通常使用短路径名填充ALT_MATLAB_ROOT,通常是“C:\ PROGRA〜1”。但是,在某些Windows系统上,可以禁用生成短路名称。此外,如果MATLAB本身安装在R2015A SP1更新和稍后版本中的空间(如C:\ Program文件)中的路径中,则此问题是修复的并且不会发生问题。
正确的代码应该如下:
MATLAB_ROOT = C:\Program Files\MATLAB\R2013a
alt_matlab_root = c:\ progra〜1 \ matlab \ r2013a
matlab_bin = c:\ program files \ matlab \ r2013a \ bin
alt_matlab_bin = c:\ progra〜1 \ matlab \ r2013a \ bin
有一些解决这个问题的方法。
这可能是最简单的解决方案。金宝搏官方网站Windows注册表中有一个设置,可以启用/禁用为文件路径生成短名称。请使用以下步骤更改此设置:
(注意:由于Windows安全设置的程序文件文件夹,此方法可能不能工作。如果在步骤4中收到“Error: Access is denied.”的消息,请使用其他解决方案。)金宝搏官方网站
1.进入Windows开始菜单,搜索“regedit.exe”。将打开一个新窗口。
2.导航到以下位置:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ \文件系统\ NtfsDisable8dot3NameCreation控制
3.将“ntfsdisable8dot3namecreation”的值更改为0。
将值更改为0将使Windows路径中的短名称能够使用短名称。有关此信息的更多信息,请参阅Microsoft的网站:
4.但是,更改上面的值只会设置更改后创建的文件和文件夹的短名称。设置Windows命令提示符中使用“fsutil”函数的短名称。设置短名称的语法如下:
以“C:\程序文件”为例,用户可以发出以下命令将“程序文件”的短名称设置为“programa ~1”。
> fsutil文件setshortname "C:\Program Files" programa ~1
该目录需要在引号中,因为它具有空格。
5.要检查设置的短名称是否正确使用“/ x”选项的“dir”命令显示短名称。
更多关于“fsutil”的信息可在这里找到:
- 解决方案2 -创建一个符号链接到MATLAB安装文件夹:
1.打开Windows命令提示符。然后进入C:目录。
2.创建一个符号链接到安装MATLAB版本的位置。语法如下:
例如,一个典型的MATLAB安装文件夹是C:\Program Files\MATLAB.要创建一个名为MyMatlab的文件夹的链接,请使用以下命令:
C:MyMatlab“C: \ Program Files \ MATLAB”
如果打开新的MyMatlab文件夹,则应查看已安装的每个版本MATLAB的文件夹。
3.为MATLAB创建一个新的快捷方式。这可以放在您的桌面或任何您想要的地方。
4.右键单击快捷方式并打开Properties。
5.转到“快捷方式”选项卡。在“目标:”选项中,将有一个可执行文件的路径,用于从此快捷方式启动matlab。修改此路径以使用新创建的符号链接。对于上面的例子,它应该阅读
C:\ mymatlab \ r2013a \ bin \ matlab.exe
6.从此快捷方式启动MATLAB。通过在命令窗口中键入“matlabroot”而不键入“matlabroot”,验证位置,现在应该在它中没有空格。
7.如果您有多个版本的MATLAB,为每个版本重复步骤3-6,以便它们将从路径上没有空间的位置发射。
此解决方案将适用于新创建的快捷方式。如果你从一个不同的位置启动MATLAB,它将不会使用符号链接,路径中的空格也会有相同的问题。
我们使用短路径的原因是为了避免路径中的空白。通过在路径中没有任何空间的位置重新安装MATLAB,您可以解决构建问题。但是,这需要您下载并重新安装MATLAB。
例如,MATLAB可以安装在以下路径上
C: \ MATLAB_Install \ MATLAB \ R2013a
与解决方案2类似,此解决方案将要求您为使用的所有版本重新安装MATLAB。
解决这个问题的另一种方法是将文件名封装在双引号中。这将导致构建过程按照字面意思处理双引号括起来的文件名,这将导致构建成功。
为此,请打开要使用代码生成的模板makefile。制作此文件的副本并重命名。在此文件中,无论何处,在“$(MATLAB_ROOT)”作为路径的一部分,请在“$”符号和路径中的最后一个字符后放置双重报价。例如,如果TMF中的原始线是:
{$(matlab_root)\ toolbox \ rtw \ targets \ xpc \ target \ build \ xpcblocks} .c.obj:
这一行将被替换为:
{“美元(MATLAB_ROOT) \工具箱\ rtw_targets \ xpc目标\ \制造\ xpcblocks”} . c。obj:
在“配置参数” - >“代码生成”中,请确保“模板makefile”选项点指向修改的TMF,否则更改将不会反映在生成的代码中。
需要对使用的每个模板makefiles重复此方法。
MATLAB R2017A的有用文档页面讨论启用带有空格的文件夹名称的构建进程的方法,可以在以下链接找到:
在“Windows上构建进程文件夹支持”一节中提到的限制在上面提到的方法中得到了解决。金宝app