【发布时间】:2016-01-14 16:32:09
【问题描述】:
我想用不同的名字编译一个 c 程序。在主文件中,我有以下宏:
#ifndef EXECUTABLE_NAME
#define EXECUTABLE_NAME "defaultname"
#endif
在使用 gcc 编译时,我使用-D 开关来定义这个宏(这是正确的术语吗?):
$ gcc main.c -DEXECUTABLE_NAME="newname"
我不知道 -D 是否正常工作,因为当我尝试执行以下代码之类的操作时......它失败了......我无法判断 -D 开关是否搞砸了或语法在printf() 函数中使用宏是不正确的:
printf("no or invalid arguments. usage: %s [0,255]\n", EXECUTABLE_NAME);
我收到此错误:
main.c:48:57: note: in expansion of macro ‘EXECUTABLE_NAME’
printf("no or invalid arguments. usage: %s [0,255]\n", EXECUTABLE_NAME);
有什么建议吗?
【问题讨论】: