mex 命令 -g 出错(无优化)
error with the mex command -g (no optimization)
我正在尝试在脚本中混合文件。必须混合的 C 文件是在混合之前在脚本的先前步骤之一中生成的。
当我在脚本中使用以下行时,一切正常,脚本成功运行。
mex (strcat(component_name,'_s_func','.c'));
但是当我在下面添加相同的行时
mex -g (strcat(component_name,'_s_func','.c'));
它给我错误
C:\PROGRA~2\MATLAB~1\BIN\MEX.PL: Error: '(strcat(component_name,_s_func,.c))' not found.
知道为什么它在使用 -g
时找不到相同的文件,而在不使用 -g
选项时却能找到吗?
确定可以使用 eval 命令执行此操作
file_name=(strcat(component_name,'_s_func','.c'));
eval(['mex -g ',file_name]);
你的语句的问题在于语法
mex -g [...]
MATLAB 假定您使用字符串参数 '-g'
和 '[...]'
调用 mex
,因此它假定您的文件名为 (strcat(component_name,'_s_func','.c'))
并且不执行命令。
您可以使用您通过 eval
发布的解决方案,这样您就可以再次使用字符串 '-g'
和 'filename.c'
调用它。另一种可能性是使用语法
mex('-g',strcat(component_name,'_s_func','.c'));
因为这样命令 strcat
在调用 mex
之前真正执行了。
--
这与例如clear
。您可能知道,以下语句是等价的:
clear a b c
clear('a','b','c');
我正在尝试在脚本中混合文件。必须混合的 C 文件是在混合之前在脚本的先前步骤之一中生成的。
当我在脚本中使用以下行时,一切正常,脚本成功运行。
mex (strcat(component_name,'_s_func','.c'));
但是当我在下面添加相同的行时
mex -g (strcat(component_name,'_s_func','.c'));
它给我错误
C:\PROGRA~2\MATLAB~1\BIN\MEX.PL: Error: '(strcat(component_name,_s_func,.c))' not found.
知道为什么它在使用 -g
时找不到相同的文件,而在不使用 -g
选项时却能找到吗?
确定可以使用 eval 命令执行此操作
file_name=(strcat(component_name,'_s_func','.c'));
eval(['mex -g ',file_name]);
你的语句的问题在于语法
mex -g [...]
MATLAB 假定您使用字符串参数 '-g'
和 '[...]'
调用 mex
,因此它假定您的文件名为 (strcat(component_name,'_s_func','.c'))
并且不执行命令。
您可以使用您通过 eval
发布的解决方案,这样您就可以再次使用字符串 '-g'
和 'filename.c'
调用它。另一种可能性是使用语法
mex('-g',strcat(component_name,'_s_func','.c'));
因为这样命令 strcat
在调用 mex
之前真正执行了。
--
这与例如clear
。您可能知道,以下语句是等价的:
clear a b c
clear('a','b','c');