编译正常时发出警告

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

【讨论】:

以上是关于编译正常时发出警告的主要内容,如果未能解决你的问题,请参考以下文章

在编译时发出警告?

在objective-c中使用B​​OOL变量时发出警告

使用编译器指令在文件丢失时发出警告

C++ DLL中的导出类在编译时会发出警告[重复]

Discord.js 我发出警告命令,使用 FS 写入文件

Vuetify:更改 <v-overlay> 的主题时发出警告