# C/C++ File Properties, Discovery Options

You can define the discovery options on the Discovery Options page of a C/C++ project's properties window.

Discovery options
Configuration | Click here for a description.
Manage configurations | Click here for a description.
Exclude resource from build | Excludes the selected file from the build process.
Left pane list (language specific) | Shows a list of language specific compilers. Select a language from the list.
Automate discovery of paths and symbols | Scans the build output to populate the path and symbol tables, such as symbol definitions, system include directories, local include directories, macros files, and include files. If this option is not selected, the Discovery profile options below do not appear.
Report path detection problems | Sets the notification of diagnostic errors for include paths that the Eclipse CDT is unable to resolve as it parses the build output.
Discovery profile options | Indicates the discovery profile to use for paths and symbol detection. The type of Configuration and Discovery Profile Scope you specify determine what which Discovery Profile options display on this tab. This set of controls is profile-specific. It may vary from one profile to another.

Enable generate scanner info command

Enables the retrieval of information from the scanner. If it is not selected, the includes will be populated with default gcc system includes; Eclipse gathers the compiler settings based on the specified toolchain. This means that the Eclipse CDT can obtain the default gcc system includes to associate with the project.

When selected, you can specify any required compiler specific commands in the Compiler invocation command field.

Compiler invocation command

Indicates the compiler specific command used to invoke the compiler (such as `gcc`, or more complicated commands used to perform all necessary steps for compiling C/C++ source files into .o files, and linking the object files and libraries into an executable program. For example, the command gcc -E -P -v hello.c | hello.cpp reads a compiler's configuration file and prints out information that includes the compiler's internally defined preprocessor symbols and include search paths. The information is complementary to the scanner configuration discovered when the output is parsed (if you've enabled the Enable build output scanner info discovery option), and is added to the project's scanner configuration. You can click Browse to locate this command, if required.

Note: The parsing of build output for scanner information is compiler specific. For example, the GNU toolchain compilers (gcc and g++) use -I for include paths, and -D for symbol definitions. Consult your compiler specific documentation for more information about scanner information commands, such as the following gcc commands:

- `-D name`
- `-I`
- `-U name`
- `-I-`
- `-nostdinc`
- `-nostdinc++`
- `-include file`
- `-imacros file`
- `-idirafter dir`
- `-isystem dir`
- `-iprefix prefix`
- `-iwithprefix dir`
- `-iwithprefixbefore dir`

Browse | Click to browse for a file to include in the compiler invocation command. This button is only visible when Configuration is set to Release and the Discovery Profiles Scope is set to Configuration-wide.

- Resource
- C/C++ Build

- Discovery options
- Settings

- Tool chains setting tab
- Build Steps tab

- Tool chain editor page

- C/C++ General

- Language Mappings
- Paths and Symbols

- Includes tab
- Symbols tab

- Run/Debug Settings page