Eclipse CDT: dwingen indexeren voorwaardelijk gecompileerde code

Onze codebasis compileert voorwaardelijk code op basis van compilatietijdconflicten. De CDT-plugin in Eclipse indexeert momenteel geen gecompileerde code, dus ik kan niet naar een functiedefinitie springen als deze zich binnen # ifdef bevindt. Hoe kan ik indexering inschakelen?

1

1 antwoord

Je kunt niet aannemen dat die code compileert als de conditionals worden genegeerd. In dit licht kan deze functie niet werken (in het algemene geval).

Ik stel voor een build-configuratie te gebruiken die alle vereiste symbolen definieert om alle blokken te compileren. Dat betekent natuurlijk dat in plaats van hebben

#ifdef FEATURE_X
    code;
#else
    other code;
#endif

je zult het omslachtiger moeten gebruiken

#ifdef FEATURE_X
    code;
#endif
#ifdef FEATURE_Y
    other code;
#endif

U kunt de indexeerfunctie dus laten werken met -DFEATURE_X -DFEATURE_Y . U kunt echter niet debuggen in een dergelijke configuratie, omdat beide blokken ook worden uitgevoerd

2
toegevoegd