0
随着gcc
(以及可能其他的编译器以及)有可能定义源文件以外的宏像这样:如何在cmd.exe中将具有-D的引号字符串传递给gcc?
c:\MinGW\bin\gcc.exe -DDEFINED_INT=45 foo.c -o foo.exe
这将定义DEFINED_INT
至45可编译时可以看出
#include <stdio.h>
int main() {
printf("The define was: %d\n", DEFINED_INT);
return 0;
}
编译后的foo.exe
将在执行时打印。
现在,我不知道的是如何通过引用的字符串而不是int。因此,printf的将被类似
3210和编译像这样:
c:\MinGW\bin\gcc.exe -DDEFINED_STRING="foo bar baz" foo.c -o foo.exe
但这不起作用,各行会
printf("The define was: %s\n", foo bar baz);
(即是:没有所需的引号)。
c:\MinGW\bin\gcc.exe -DDEFINED_STRING=\"foo bar baz\" foo.c -o foo.exe
不起作用,两者都不是,因为GCC现在试图找到这些文件酒吧和巴兹(该错误信息是:
gcc.exe: bar: No such file or directory
gcc.exe: baz": Invalid argument
<command-line>:0:16: warning: missing terminating " character
所以,我怎样才能让编译器与CMD.EXE一起做我想要什么?
没有什么不对! – 2012-03-29 15:39:24