为什么运输模型的构建过程失败的模型或模型在加速器模式下运行?金宝app

310(30天)
当我试图建立一个内置的演示,我得到一个错误消息,指出构建失败了。我有一个支持编译器金宝app安装和正确设置。
错误消息将类似于以下:
错误:NMAKE:致命错误U1073:不知道如何让“C: \程序”
停止。
2使命令返回一个错误
“An_error_occurred_during_the_call_to_make”不被认为是内部或外部命令,
可操作的程序或批处理文件。
类似的错误可能发生在为模型,建立日志在加速器运行模式。

接受的答案

MathWorks支金宝app持团队
编辑:MathWorks支金宝app持团队 2022年2月22日
构建过程的问题是由于以下行”模式。可“makefile。楼上那位文件包含以下代码:
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变量具有相同的值,使用MATLAB_ROOT makefile是价值与空间。构建过程与空间不知道如何处理文件的路径。MATLAB通常填充ALT_MATLAB_ROOT短路径名称,通常“C: \ PROGRA ~ 1”。然而,在一些Windows系统代短路径名可能被禁用。如果MATLAB本身就是安装在一个空间的路径(例如C: \ Program Files) R2015a SP1更新和以后的版本中,这个问题是固定的,不会发生。
适当的代码应该是如下:
MATLAB_ROOT = C:\Program Files\MATLAB\R2013a
ALT_MATLAB_ROOT = C: \ \ MATLAB \ R2013a PROGRA ~ 1
MATLAB_BIN = C:\Program Files\MATLAB\R2013a\bin
MATLAB ALT_MATLAB_BIN = C: \ PROGRA ~ 1 \ \ R2013a \ bin
有一些方法来解决这个问题。
  • 解决方案1 -使用Windows短名称:
这也许是最简单的解决方案。金宝搏官方网站有一个在Windows注册表设置,启用/禁用短名称文件路径的生成。请使用以下步骤来改变这个设置:
(注:由于Windows程序文件文件夹的安全设置,这个方法可能不工作。如果你收到一个消息在步骤4,说“错误:访问被拒绝。”请使用其他的解决方案之一。)金宝搏官方网站
1。去Windows开始菜单搜索“regedit.exe”。将打开一个新窗口。
2。导航到以下位置:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ \文件系统\ NtfsDisable8dot3NameCreation控制
3所示。改变“NtfsDisable8dot3NameCreation”的值为0。
变化值为0将使使用短名称在Windows路径。更多信息可以在微软的网站:https://docs.microsoft.com/en - us/previous versions/windows/it pro/windows - 2000 server/cc959352 (v = technet.10)
4所示。然而,改变值高于只会设置短名称更改之后创建的文件和文件夹。的短名称使用“fsutil”功能在Windows命令提示符。语法设置短名称如下:
> fsutil文件短setshortname <文件名> < >
的例子“C: \ Program Files”用户会发出以下命令设置短名称为“程序文件”“PROGRA ~ 1”。
> fsutil文件setshortname“C: \ Program Files”PROGRA ~ 1
目录需要报价,因为它的空间。
5。检查短名称是正确设置使用“dir”命令以“/ x”选项显示短名称。
> dir C: \ / x
“fsutil”的更多信息可以在这里找到:https://docs.microsoft.com/en - us/previous versions/windows/it pro/windows - server - 2012 r2 -和- 2012/cc788058 (v = ws.11)
  • 解决方案2 - MATLAB安装文件夹中创建一个符号链接:
1。打开Windows命令提示符。和去C:目录。
2。创建符号链接的位置你的MATLAB版本安装。语法如下:
> mklink / d <链接> <目标>
例如,一个典型的MATLAB C:\Program Files\MATLAB.安装文件夹做一个链接到该文件夹名为MyMatlab使用以下命令:
> mklink / d C: MyMatlab“C: \ Program Files \ MATLAB”
如果你打开新的MyMatlab文件夹,您应该看到每个版本的MATLAB安装文件夹。
3所示。MATLAB的创建一个新的快捷方式。这可以在你的桌面或无论你想。
4所示。右键单击快捷方式,打开属性。
5。去“快捷方式”选项卡。在“目标:”选项将会有一个可执行路径,用于从这个快捷方式启动MATLAB。修改这条道路使用新创建的符号链接。对于上面的示例,它应该读
C: \ MyMatlab \ R2013a \ bin \ matlab.exe
6。从这个快捷方式启动MATLAB。验证位置通过输入“matlabroot”没有报价在命令窗口,这在现在应该没有空格。
7所示。如果你有多个版本的MATLAB,重复步骤3 - 6为每一个版本,这样他们会从一个位置没有空格的路径。
该解决方案将为新创建的快捷方式工作。如果你从不同的位置不会启动MATLAB使用符号链接和将会有同样的问题空间的路径。
  • 解决方案3 -改变MATLAB安装文件夹:
我们使用短路径的原因是为了避免空格的路径。通过MATLAB在重新安装位置没有任何空间的路径,你可以解决方案构建的问题。然而,这将要求您下载并重新安装MATLAB。
例如,MATLAB可以安装在一个路径如下
C: \ MATLAB_Install \ MATLAB \ R2013a
就像解决方案2,该解决方案将需要你重新安装使用MATLAB对所有版本。
  • 解决方案4 -修改模板makefile
另一个解决这个问题的方法是将双引号中的文件名。这将导致构建过程将文件名包含在双引号会导致构建成功。
要做到这一点,打开模板makefile,您正在使用代码生成。复制该文件并重新命名。在这个文件中,无论使用“$ (MATLAB_ROOT)”作为一个路径的一部分,把双引号“$”符号之前和之后的最后一个字符的路径。例如,如果原始TMF的行:
{美元工具箱(MATLAB_ROOT) \ \ rtw \ \ xpc目标\ \制造\目标xpcblocks} . c。obj:
线将被替换为:
{“美元(MATLAB_ROOT) \工具箱\ rtw_targets \ xpc目标\ \制造\ xpcblocks”}. c。obj:
在“配置参数”- >“代码生成”确保“makefile模板”选项指向修改TMF,否则更改将不会反映在生成的代码中。
该方法将为每个模板需要重复使用的makefile。
一个有用的文档页面MATLAB R2017a讨论的方法使构建过程与空间文件夹名称可以在以下链接中找到://www.tatmou.com/help/rtw/ug/enable-build-process-for-folder-names-with-spaces.html
中提到的限制部分的构建过程文件夹支持Windows的在上面提到的方法解决。金宝app
9日评论
Raheleh Biglari
Raheleh Biglari 2021年11月5日
这对我来说同样适用。我想独立FMU出口仿真软件模型。金宝app我仿真软件文件移动到C驱金宝app动器(Matlab安装驱动)。和它的工作原理!
谢谢 @Karel Viaene

登录置评。

更多的答案(4)


praveen mirajkar
praveen mirajkar 2017年9月4日
你好,所有我得到以下错误
C: / ProgramData / MAT金宝appLAB / SupportPackages / R2017a /工具箱/目标/ SupportPackages / armcortexmbase / cmsis_rtos_rtx / src / mw_signal。c gmake: *没有规则,使目标C: / ProgramData / MATLAB / SupportPack金宝appages / R2017a /工具箱/目标/ SupportPackages / freedomk64f / src / ksdk_armgcc_lib / bm / libksdk_platform。”,需要“. . / untitled.elf”。停止。旅客:\ MATLAB程序文件\ \ R2017a \ untitled_ert_rtw >回声make命令返回一个错误2 2 G的使命令返回一个错误:\ MATLAB程序文件\ \ R2017a \ untitled_ert_rtw > An_error_occurred_during_the_call_to_make An_error_occurred_during_the_call_to_make”没有被识别为内部或外部命令,可操作的程序或批处理文件。
我试过了所有解决方案仍然无法解金宝搏官方网站决这个问题,可以有人帮助吗? ?

哈立德
哈立德 2016年4月7日
你好,
我用Matlab 2015 b和Matlab 2012 b。我试着第二个解决方案,但只能用Matlab 2012 b。我不知道如何修复它与Matlab 2015 b。还有其他的解决方案吗?
谢谢

萨莱Selvam V
萨莱Selvam V 2016年9月20日
亲爱的朋友,我很欣赏Mathworks支持团队的努力回答查询。金宝app但我的最好的知识和经验,答案似乎是小超过了实际的场景。我面临同样的问题,同样的错误消息但是我确实很不正确,这里提到的任何方法。
场景之前更正:
我存储文件(c m文件&包装文件)在一个文件夹,即:
D: \ \ MATLAB&C \ MATLAB2C \研究CODEGEN \ TutorialToMATLAB2C \ CODERAND
这就是问题所在:文件夹的名字:“MATLAB&C”和“MATLAB2C”和TutorialToMATLAB2C”。
我改变了文件夹名称:
D: \ \ MATLABAndC \ MATLABToC \研究CODEGEN \ TutorialToMATLABToC \ CODERAND
解决这个问题。
我的文件:
1)m文件:coderand.m
函数r = coderand ()% # codegen
%的指令% # codegen表示函数
%用于代码生成
r = rand ();
2)C包装文件:C
/ *
* * c
* /
#包括< stdio . h >
#包括< stdlib.h >
#包括“coderand.h”
#包括“coderand_initialize.h”
#包括“coderand_terminate.h”
intmain ()
{
coderand_initialize ();
printf (“coderand = % g \ n”coderand ());
coderand_terminate ();
返回0;
}
3)m脚本文件:cccoderand.m
cfg = coder.config (exe”);
cfg。CustomSource =“c”;
cfg。CustomInclude =D: \研究\ MATLABAndC \ MATLABToC \ CODEGEN \ TutorialToMATLABToC \ CODERAND”;
codegen配置cfg coderand;
这就是朋友。谢谢。

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!