2017-10-07 7 views
1

J'ai macro préprocesseur dans le fichier .config comme ci-dessouspréprocesseur macro définie dans le fichier .config n'est pas visible dans le fichier c

CONFIG_IDENTIFIER=y 

Ensuite, le contenu Makefile sont comme ci-dessous

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

Puis, en fichier ./src/myfile.c, je tente d'utiliser la macro perprocessor comme ci-dessous,

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

Mais pas en mesure d'obtenir le préprocesseur définition de macro dans le fichier ./src/myfile.c. Toute aide à ce sujet?

+0

Si elle est une macro alors il n'est pas attribué une valeur comme ça: '#define CONFIG_IDENTIFIER'. – Raindrop7

Répondre

0

J'ai préprocesseur macro dans le fichier .config comme ci-dessous

CONFIG_IDENTIFIER=y 

Ceci définit une variable locale au Makefile. Il ne pas définir une macro C-préprocesseur.

Pour ce faire une macro-C préprocesseur, vous pouvez régler le Makefile comme ceci:

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

CONFIG_IDENTIFIER n'est pas une macro de préprocesseur, c'est une variable make, tout comme OBJS.