【问题标题】: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 文件中设置的值。

它编译得很好,但索引器抱怨警告“遇到错误的字符序列:\”。有没有办法让它理解它或者让它忽略这个特定的变量?

【问题讨论】:

    标签: makefile eclipse-cdt


    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 2019-11-23
      • 1970-01-01
      • 2013-01-11
      • 1970-01-01
      • 2017-02-13
      • 2020-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多