2016-09-22 1 views
1

Je suis en train de passer une macro définie à mon programme au moment de la compilation comme ceci:macro passé de compilation ne peuvent être résolus dans Eclipse

#include <stdio.h> 
int main() { 
    // KEY_CNT is not defined in program but passed at compile time 
    printf("KEY_CNT: %d", KEY_CNT); 
    return 0; 
} 

et compiler avec g++ -DKEY_CNT=2 -O2 test_3.cpp -o test_3 et il fonctionne comme prévu, mais le problème est Eclipse ne peut pas résoudre 'KEY_CNT'. Ceci est juste un exemple de jouet, dans mon programme original, beaucoup de fausses erreurs comme celle-ci avec des lignes rouges sont vraiment ennuyantes.

Je pense Eclipse peut-être besoin d'être informé de mon option de compilation pour qu'il sache « KEY_CNT » est défini, donc j'ajouter à -DKEY_CNT=2Properties -> C/C++ Build -> Settings -> GCC C++ Compiler -> Miscellaneous, mais il ne fonctionne toujours pas.

Un conseil pour résoudre ce problème?

======== ======== ajouté

version d'Eclipse: Eclipse IDE pour C/C++ développeurs, service Luna presse 2 (4.4.2)

+0

Tant qu'il compile, quel est exactement le problème que vous avez avec Eclipse qui ne parvient pas à savoir que les macros sont définies dans les options de compilation? –

+0

@AdrianColomitchi Je pense que peut-être ma configuration présentée ci-dessus n'est pas la bonne ou pas suffisante pour Eclipse de connaître la définition? Je ne suis pas sûr. N'importe quelle idée de possbile? – MarZzz

+0

"Luna Service Release 2 (4.4.2)" A moins d'être contraint par d'autres choses, je vous suggère de passer à Mars.2 (4.5.2) - Indexer a moins de problèmes (du moins c'est mon expérience personnelle) –

Répondre

2

Propriétés -> C/C++ Build -> Paramètres -> Compilateur GCC C++ -> Divers

Mauvais emplacement.

devrait être "C/C++ Construire -> Paramètres -> GCC compilateur C++ -> préprocesseur"

cela fonctionne juste vérifié.