How to exclude files from Eclipse indexer

The Indexer in Eclipse CDT runs in the background indexing the source files of your project. Indexer is one of the main reasons Eclipse can be slow. You can see it churning away in the background most of the time.

If you have a lot of files in your project that you do not want to be indexed, that would ease the load on the indexer and make your Eclipse user experience better. To exclude such files from Indexer:

  • Go to project Properties -> C/C++ General -> Paths and Symbols.

  • Go to Source Location tab, click on your project name and choose Edit Filter.

  • In the Edit Filter dialog, add the files you want to be excluded from indexing.

Tried with: Eclipse 4.5 (Mars) and Ubuntu 14.04

How to change compiler options used by indexer in Eclipse CDT

Eclipse CDT understands the C++ code in a window by running it through an indexer. This indexer is nothing but an invocation of the GCC C++ compiler with certain compilation options. Sometimes, you might want to change the compiler options used by this indexer.

For example, I recently found that C++11 containers and classes (like future) were not resolved by the indexer and were underlined with red squiggles. This is because the compiler options used by the indexer does not have -std=c++11.

To change the compiler options of the indexer:

  1. Open Preferences and go to C/C++ -> Build -> Settings.
  2. Click the Discovery tab and choose CDT GCC Built-in Compiler Settings.
  3. Modify the command string shown below it as you wish. For example, here I added -std=c++11.
  4. Eclipse CDT will automatically re-index your C++ files after this is saved. However, I found that this did not remove the unresolved items.
  5. I manually re-indexed by right-clicking the project and choosing Index -> Rebuild. This worked!

Tried with: Eclipse 4.5 (Mars) and Ubuntu 14.04