2017-10-07 3 views
1

I Präprozessormakro in CONFIG-Datei wie untenPräprozessormakro in CONFIG-Datei definiert nicht sichtbar in c-Datei ist

CONFIG_IDENTIFIER=y 

Dann haben, sind die Makefile Inhalte wie unten

-include .config 
OBJ += ./src/myfile.o 
.... 
myapp: $(OBJS) 
    $(CC) $(LDFLAGS) -o myapp $(OBJS) 
    @$(E) " LD " [email protected] 

dann in ./src/myfile.c Datei, ich versuche, das perprocessor Makro wie unten zu verwenden,

#ifdef CONFIG_IDENTIFIER 
.... /* Compiler does not execute in here */ 
.... 
#endif 

aber nicht in der Lage den Präprozessor zu bekommen Makrodefinition in der Datei ./src/myfile.c. Irgendwelche Hilfe dazu?

+0

Wenn es ein Makro ist, dann wird es keinen Wert wie das zugewiesen: '#define CONFIG_IDENTIFIER'. – Raindrop7

Antwort

0

Ich habe Präprozessormakro in CONFIG-Datei wie unten

CONFIG_IDENTIFIER=y 

Dies definiert eine Variable lokal auf dem Makefile. Es tut nicht definieren Sie ein C-Präprozessor-Makro.

Um es mit einem C-Präprozessormakro machen Sie das Makefile wie folgt einstellen könnte:

-include .config 
CFLAGS += -DCONFIG_IDENTIFIER=$(CONFIG_IDENTIFIER) 
.... 
1

CONFIG_IDENTIFIER ist kein Präprozessor-Makro, es ist eine make-Variable, genau wie OBJS.

Verwandte Themen