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