mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-23 22:52:11 +02:00
64 lines
No EOL
3.8 KiB
HTML
64 lines
No EOL
3.8 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta name="copyright" content="Copyright (c) Andrew Gvozdev and others 2013,2013. This page is made available under license. For full details, see the LEGAL section in the documentation that contains this page.">
|
|
|
|
<meta http-equiv="Content-Language" content="en-us">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<title>Setting up include paths and macros for C/C++ indexer</title>
|
|
<link rel="stylesheet" type="text/css" href="../help.css">
|
|
</head>
|
|
|
|
<body>
|
|
<div>
|
|
<h1>Setting up include paths and macros for C/C++ indexer</h1>
|
|
|
|
<p>
|
|
CDT allows for comfortable environment with code highlighting, navigation, content assist and static analysis.
|
|
However, most C/C++ projects have to be configured to enjoy those features. Most real life C/C++ projects heavily depend on code outside of the project itself,
|
|
such as system headers or third party libraries. CDT indexer needs to process those to provide accurate index.
|
|
Failure to set up these important settings assuredly will cause the assist tools misbehave.
|
|
</p>
|
|
|
|
<p>CDT will try to discover include paths and preprocessor symbols automatically for supported toolchains. This process is known as <a href="../concepts/cdt_c_scanner_discovery.htm">Scanner Discovery</a> or <b>Autodiscovery</b>.
|
|
This discovery of symbols is twofold.
|
|
One way, CDT will try to detect built-in compiler symbols and include paths running the compiler with special options and parse the output.
|
|
Another method that CDT employs is to analyze build output of the regular build with Build Output Parser. 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.
|
|
</p>
|
|
|
|
<p>
|
|
<a href="../concepts/cdt_c_scanner_discovery.htm">Scanner Discovery</a> uses <strong>Language Settings Providers</strong> to find include paths and preprocessor symbols.
|
|
Language Settings Providers can be configured on project properties page "Preprocessor Include Paths, Macros, etc.", <a href="../reference/cdt_u_prop_general_sd_providers.htm">Providers tab</a> for a configuration
|
|
and on preference page <a href="../reference/cdt_u_pref_build_scanner_discovery.htm">C/C++ Preferences: Scanner Discovery</a> for shared providers.
|
|
</p>
|
|
<p>
|
|
If information retrieved by auto-discovery is insufficient or the project deviates from a standard one supported by CDT a user can inspect discovered entries and enter additional include paths and macros manually
|
|
on the property page "Preprocessor Include Paths, Macros, etc.", <a href="../reference/cdt_u_prop_general_sd_entries.htm">Entries tab</a>.
|
|
</p>
|
|
|
|
|
|
<p>
|
|
There are other ways to make C/C++ indexer aware of include paths or macros. One way is to set up them in MBS via "Paths and Symbols" project properties.
|
|
See <a href="cdt_t_proj_paths.htm">Including paths and symbols in Managed Build System</a>. These entries are supplied to the indexer with MBS Language Settings Provider.
|
|
</p>
|
|
|
|
|
|
<p><img src="../images/ngconcepts.gif" alt="Related concepts" width="143" height="21"><br>
|
|
<a href="../concepts/cdt_c_scanner_discovery.htm">Scanner Discovery</a><br>
|
|
<a href="../concepts/cdt_c_indexer.htm">C/C++ Indexer</a><br>
|
|
</p>
|
|
|
|
<p><img src="../images/ngtasks.gif" alt="Related tasks" width="143" height="21"><br>
|
|
<a href="../tasks/cdt_t_search.htm">Searching for C/C++ elements</a></p>
|
|
</p>
|
|
|
|
<p><img src="../images/ngref.gif" alt="Related reference" width="143" height="21"><br>
|
|
<a href="../reference/cdt_u_pref_build_scanner_discovery.htm">C/C++ Preferences: Scanner Discovery</a><br>
|
|
<a href="../reference/cdt_u_prop_general_scanner_discovery.htm">C/C++ Project properties: Preprocessor Include Paths, Macros, etc.</a><br>
|
|
</p>
|
|
|
|
</div></body>
|
|
|
|
</html> |