# Setting up include paths and macros for C/C++ indexer

The Stand-alone Debugger supports a number of actions based on the application's code such as code highlighting, navigation, content assist and static analysis. Normally, C/C++ projects have to be configured to enjoy those features due to the fact that most real life C/C++ projects heavily depend on code outside of the project itself, such as system headers or third party libraries. The C/C++ indexer needs to process those to provide an accurate index.

The Stand-alone Debugger will try to discover include paths and preprocessor symbols automatically. This process is known as Scanner Discovery or Autodiscovery. This discovery of symbols is twofold. The first method is that the Stand-alone Debugger will try to detect built-in compiler symbols and include paths running the compiler with special options and parse the output. Another method that the Stand-alone Debugger employs is to analyze the output generated from a Makefile build. Since the Stand-alone Debugger does not contain build support, this output must be saved externally and passed to the debugger either on the command line using the -b option or else by specifying the build log using the File > New Executable... dialog. Often, include paths are supplied to the compiler with -I options, and macros with -D options. That relies on verbose build output of your build where all these options are actually printed by make.

Scanner Discovery uses Language Settings Providers to find include paths and preprocessor symbols. Language Settings Providers can be configured on project properties page "Preprocessor Include Paths, Macros, etc.", Providers tab for a configuration and on preference page C/C++ Preferences: Scanner Discovery for shared providers.

If information retrieved by auto-discovery is insufficient a user can inspect discovered entries and enter additional include paths and macros manually on the property page "Preprocessor Include Paths, Macros, etc.", Entries tab.

Scanner Discovery
C/C++ Indexer

Searching for C/C++ elements

C/C++ Project properties: Preprocessor Include Paths, Macros, etc.