我在makefile.init中定义了一些变量:
MY_VARIABLE = some_value
在预处理器设置中,我有这个-D开关:
-DUSE_MY_VAR=\"$(MY_VARIABLE)\"
在源文件中,我有这个:
static const char* my_val = USE_MY_VAR;
所以这个my_val将获取makefile.init文件中设置的值。
它编译得很好,但是索引器会发出警告并且遇到错误的字符序列:\"。有没有办法让它理解它或者让它忽略这个特定的变量?
答案 0 :(得分:2)
好的,终于找到了让编译器和索引器都满意的东西:
我的-D开关变为(删除了转义的引号):
-DUSE_MY_VAR=$(MY_VARIABLE)
并在源代码中(感谢Expand macro inside string literal):
#define STRINGIFY2(X) #X
#define STRINGIFY(X) STRINGIFY2(X)
static const char* my_val = STRINGIFY(USE_MY_VAR);