Why does Open Declaration (F3) not work?
Check whether CDT has the include paths to resolve your headers: In the context menu of the project select Indexer – Search For Unresolved Includes. You can also use the Include Browser (from the Editor, Right-click > Show in > Include Browser) to see which includes have been resolved. If your include paths are missing you can add them on Project > Properties > C++ Include Paths and Symbols > Add Include Path from Workspace. Then rebuild the index: Select project, right-click > Index > Rebuild Index. After rebuilding index, look at Window > Show View > General > Error Log: Hover over the “Info” entry, it shows some statistics about what it just indexed. In a reasonably well setup C project, “unresolved symbols” should be below 1% — for C++ the value can be higher depending on code complexity (CDT still has issues with Templates and complex name lookups).