For C/C++ RTags (https://github.com/Andersbakken/rtags) together with company-mode and fly-check can do jump-to-definition, auto-completion and on-the-fly-syntax-checking. Super easy to use if using cmake as build system.
Respond to this comment if you need pointers on how to set things up.
For make you could use bear (https://github.com/rizsotto/Bear). It allows you to generate a compilation database that is equivalent to that of cmake projects.
Respond to this comment if you need pointers on how to set things up.