烧结警告,而编译是好的

时间:2017-05-19 09:37:06

标签: makefile eclipse-cdt

我在makefile.init中定义了一些变量:

MY_VARIABLE = some_value

在预处理器设置中,我有这个-D开关:

-DUSE_MY_VAR=\"$(MY_VARIABLE)\"

在源文件中,我有这个:

static const char* my_val = USE_MY_VAR;

所以这个my_val将获取makefile.init文件中设置的值。

它编译得很好,但是索引器会发出警告并且遇到错误的字符序列:\"。有没有办法让它理解它或者让它忽略这个特定的变量?

1 个答案:

答案 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);