对包含空格或特殊字符的文件夹金宝app名的构建过程支持
带空格的文件夹名称
Windows操作系统®系统,代码生成器映射驱动器对应的MATLAB®以下任一条件的安装文件夹:
的
matlabroot
文件夹是UNC位置。路径
matlabroot
文件夹包含空格,系统不支持其他名称。金宝app
这些文件夹路径可以包含空格:
MATLAB安装文件夹的路径(
matlabroot
).例如,C:\Program Files\MATLAB\R2015b
开始构建的当前工作文件夹的路径(
松材线虫病
).例如,C:\Users\username\Documents\My工作
.构建过程使用的编译器的安装文件夹的路径。
如果您的工作环境包括上述一个或多个场景,请为构建过程使用以下支持机制:金宝app
如果您使用工具链方法构建生成的代码,则系统对文件夹名称中空格的支持会影响工具链操作:金宝app
Linux®在支持8.3名称创建的系统和Windows系统中,工具链通过使用来自操作系统的替代名称来管理文件夹名称中的空间。工具链使用
TransformPathsWithSpaces
属性来管理这些名称。addAttribute(toolchainObject, 'TransformPathsWithSpaces', true);
驱动器和文件夹的安全权限决定了工具链是否转换路径。例如,如果路径包含一个具有禁止8.3路径转换的安全配置的文件夹,则工具链不会转换路径,构建过程将产生警告。
对于禁用了8.3名称创建的Windows系统,工具链通过使用批处理文件(.bat)映射网络驱动器来管理文件夹名称中的空间。该操作需要添加
RequiresBatchFile
属性设置为工具链定义。addAttribute(toolchainObject, 'RequiresBatchFile', true);
在为Windows系统开发工具链时,请同时设置这两个属性。有关工具链属性的更多信息,请参见
addAttribute
.如果使用模板生成文件方法构建生成的代码,则模板生成文件(
.tmf
)需要代码来管理文件夹名称中的空格。当替代文件夹名称(Windows短名称)与文件系统文件夹名称(Windows长名称)不同时,将此代码添加到makefile中。如果"$(MATLAB_ROOT)", ALT_MATLAB_ROOT = |>ALT_MATLAB_ROOT<| >ALT_MATLAB_BIN<| !! = " $ (ALT_MATLAB_ROOT) "MATLAB_ROOT = $(ALT_MATLAB_ROOT) !endif !if $(MATLAB_BIN)"! = " $ (ALT_MATLAB_BIN) "MATLAB_BIN = $(ALT_MATLAB_BIN)
当位置标记的值不相等时,此代码将进行替换
MATLAB_ROOT
与ALT_MATLAB_ROOT
.替换指示到MATLAB安装文件夹的路径包含空格。此代码应用相同类型的替换MATLAB_BIN
与ALT_MATLAB_BIN
.上面的代码是特定于nmake
.有关特定于平台的示例,请参阅提供的模板makefiles。
无论使用哪种构建方法,当在支持创建替代名称(短名称)方面出现问题时,Windows上都可能出现构建错误。金宝app如果构建生成类似于以下消息的错误消息,请参见解决文件夹名称中有空格时的错误(金宝app仿真软件编码器)。
NMAKE:致命错误U1073:不知道如何使'…
当使用操作系统命令时,例如系统
或dos
,将指定可执行文件或命令参数的路径用双引号(”“
).例如:
system('dir "D:\Applications\Common Files ')
此表提供了windows构建文件夹支持和限制的摘要。金宝app
构建过程文件夹 | 带有UNC或空格的路径的方法 | 金宝app对Windows的支持 |
---|---|---|
的 |
在构建期间,UNC位置,例如:
可以重新映射为:
在具有短文件名(8.3)支持的Windows系统上构建期间(使用NTFS的Windows的默认值),构建过程使用Window金宝apps API 在不支持短文件名(8.3)的Windows系统(使用ReFS或禁用8.3支持的NTFS系统)上构建时,路径中带有空格的位置,例如:金宝app
可以重新映射为:
|
构建过程文件夹支持独立于文件系统(NTFS金宝app或ReFS)或文件系统配置,支持短文件名。 限制: 在需要驱动器映射安装位置的系统上,构建过程要求驱动器号可用于映射。 在没有短文件名(8.3)支持的系统上(使用ReFS或使用禁用8.3支持的NTFS)金宝app,安装位置中的最终文件夹不能包含空格。例如,最终文件夹名:
不支持。金宝app |
代码生成文件夹 模拟缓存文件夹 自定义代码源文件位置-其中,这些位置包括由以下文件指定的文件夹:
|
对于UNC位置,构建过程使用shell命令临时映射驱动器 |
构建过程文件夹支持独立于文件系统(NTFS金宝app或ReFS)或文件系统配置,以支持短路径名称。 |
对于带有空格的路径,构建过程使用Windows短路径名(8.3),通过使用Windows API:
|
构建过程文件夹支持依赖于NTFS文件系统,金宝app需要Windows默认支持。注册表为以下情况设置值2或0:
限制:在以下情况下,生成过程不支持在这些文件夹的路径金宝app中设置空格:
|
具有特殊字符的文件夹名称
如果与构建相关的文件夹路径包含日文(多字节)字符,其中最后一个字节等于5度
如果是十六进制字符,则构建过程可能会产生错误。make和编译器工具可能会错误地将最后一个字节解释为“\”
(反斜杠)字符。
解决文件夹名称中有空格时的错误
在Windows上,当对短文件名的创建支持出现问题时,可能会发生构建过程错误。金宝app当此问题影响构建时,您将看到类似于以下内容的错误消息:
NMAKE:致命错误U1073:不知道如何使“C:工作\我”
如果文件夹名称中的空格(C: \ \我的工作模型
)阻止构建过程找到要构建的模型或文件。有关对文件夹名称或路径中的空格敏感的与构建相关的文件夹的说明,请参见带空格的文件夹名称(金宝app仿真软件编码器)。
当Windows短文件名对文件名的支持被禁用时,为了避免文件夹名称中带有空格的问题,请不要使用带有空格的路径。金宝app例如,在没有空格的路径上安装第三方软件。对于包含模型、源文件或库的文件夹,不要使用带空格的路径。
使用带空格的文件夹名的构建可能会出现问题,因为可能会禁用Windows备用名称支持。金宝app构建过程在Windows系统上使用此备用名称支持。金宝app有很多术语支持此文件、文件夹和路径替代名称:金宝app
8.3的名字
DOS路径
短文件名(SFN, ShortFileName)
长名别名
Windows路径别名
验证驱动器使用的文件系统类型。在Windows资源管理器中,右键单击驱动器图标并选择属性。
此错误可能源于使用NTFS的系统上短文件名支持的问题。金宝app检查允许为文件、文件夹和路径创建短名称的Windows注册表设置。
以管理员身份打开Windows命令提示符。例如,在Windows开始菜单中键入
cmd
,右键单击用于cmd . exe
图标,然后选择以管理员身份运行
.改为
windows \ system32系统
文件夹和查询NtfsDisable8dot3NameCreation
输入状态:> fsutil 8dot3name查询
如果注册表状态为
NtfsDisable8dot3NameCreation
不是2,默认(音量级别设置),通过输入将值更改为2:> fsutil 8dot3name set 2
有关启用短名称创建的详细信息。看到https://technet.microsoft.com/en-us/library/ff621566.aspx.
更改注册表设置只允许为更改后创建的文件和文件夹创建短名称。
若要为禁用短名称创建时创建的文件创建短名称,请在Windows命令行上使用
fsutil
实用程序。要设置短名称,语法为:
> fsutil文件setshortname
. txt 例如,创建短名称
PROGRA ~ 1
对于长名字来说C:\Program Files
类型:> fsutil文件setshortname "C:\程序文件" PROGRA~
的
C:\Program Files
文件夹名称用引号括起来,因为其中有空格。要验证是否创建了短名称,请使用
dir
命令/ x
选项显示短名称。>目录C:\ /x
另请参阅
相关的话题
- 管理构建过程文件夹(金宝app仿真软件编码器)
- 管理构建过程文件(金宝app仿真软件编码器)
- 管理构建过程文件依赖项(金宝app仿真软件编码器)
- 添加构建过程依赖项(金宝app仿真软件编码器)
- 实时系统的构建过程工作流(金宝app仿真软件编码器)