2015-10-26 147 views
1

我使用mex命令来构建包含在sfun.c我的C代码:传递字符串参数Matlab的MEX命令

mex CFLAGS="\$CFLAGS -std=gnu99" sfun.c; 

可正常工作。但是,我想以编程方式更改部分CFLAGS="\$CFLAGS -std=gnu99"。我想这部分分配给一个变量,并把它传递给mex命令紧随其后,但它失败:

bv = 'CFLAGS="\$CFLAGS -std=gnu99"' 
mex bv sfun.c 

Matlab的返回此错误:

gcc: error: bv: No such file or directory 

mex: compile of ' "sfun.c"' failed. 

什么是用程序生成bv最接近的方式并将该值传递给mex命令?

+0

如果您找到解决方案,我会很感激它,如果你分享它。 – Ian

回答

-1

你想

mex(bv, 'sfun.c'); 

一般来说,

foo bar baz 

被视为同

foo('bar', 'baz') 

所以你的命令传递文字串 'BV' 到墨西哥。

+0

这不起作用。在R2017a尝试了这个建议和一些变化,但没有取得成功。 – Ian

+0

@Ian,我不确定你有什么麻烦,但是这确实有效。 '>> disp(version)' 9.2.0.556344(R2017a) '>> bv ='CFLAGS =“\ $ CFLAGS -std = gnu99”'; mex(bv,'sfun.c')' 建立'gcc'。 墨西哥成功完成。 '>> sfun' Hello world – SCFrench

+0

https://stackoverflow.com/questions/48668913/how-to-pass-filepath-variables-to-mex-command那是我们解决问题的地方。我再次尝试过你没有成功,所以我不知道。 – Ian

相关问题