2017-05-19 2 views
1

Ich habe einige in makefile.init definierten Variablen:Lintering während Kompilierung Warnung ist ok

MY_VARIABLE = some_value 

In den Prä-Prozessor-Einstellungen ich diesen Schalter -D haben:

-DUSE_MY_VAR=\"$(MY_VARIABLE)\" 

Und in einer Quelldatei, ich habe dies:

static const char* my_val = USE_MY_VAR; 

Also dieser my_val den Wert in der makefile.init Datei.

Es kompiliert gut, aber der Indexer beschwert sich mit einer Warnung "Fehlerhafte Zeichenfolge gefunden: \". Gibt es eine Möglichkeit, es zu verstehen oder vielleicht diese spezifische Variable zu ignorieren?

Antwort

2

Ok endlich etwas gefunden, das sowohl Compiler und Indexer machen glücklich:

mein -D Schalter wird (entfernt die entkam Anführungszeichen):

-DUSE_MY_VAR=$(MY_VARIABLE) 

und im Quellcode (dank Expand macro inside string literal):

#define STRINGIFY2(X) #X 
#define STRINGIFY(X) STRINGIFY2(X) 

static const char* my_val = STRINGIFY(USE_MY_VAR); 
Verwandte Themen