Community
Participate
Working Groups
Build Identifier: M20080911-1700 When I have a C/C++ Project and there is code with #ifdef then this code is only NOT greyed out when I define the used DEFINE in all configurations. Example: Code is: #ifdef FOOBAR printf("123"); #endif This code is greyed out normally. Then I go to "Project/Properties/C/C++ General/Paths and Symbols" and there in "symbols" and then a make "add" Name = FOOBAR and make a check in "add to all configurations" and then press OK. After this, the code is not greyed out any more. (This is what I expect.) But if I don't set the check in "add to all configurations" and then I set the configuration active, where I have added the define (using "Project/Build Configurations/Set active") the code stays greyed out. Reproducible: Always Steps to Reproduce: 1. add the define to only one configuration (i.e. DEBUG) 2. set the configuration from "1." to active
If you want Active build configuration to sync with indexer or other UI you need to set in project properties->"C/C++ General"->Indexer->"Build configuration for the indexer"->"Use active build configuration". This might be counter-intuitive but that is how it works. Please, see bug 247021 comment#12 for some justification.
Again, I totally agree that it is very confusing. I created a bug to make it hopefully less confusing. *** This bug has been marked as a duplicate of bug 313944 ***