编译正常时发出警告
Posted
技术标签:
【中文标题】编译正常时发出警告【英文标题】:Lintering warning whereas compilation is ok 【发布时间】:2017-05-19 09:37:05 【问题描述】:我在 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】:好的,终于找到了让编译器和索引器都满意的东西:
我的 -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);
【讨论】:
以上是关于编译正常时发出警告的主要内容,如果未能解决你的问题,请参考以下文章