C++ include libraries

You'd use #include <someheader.h> for header files in system locations.

#include "someheader.h" would try to include the file someheader.h in the directory of your .c file.

In addition to including the header file, you also need to link in the library, which is done with the -l argument:

g++ -Wall youprogram.cpp -lname_of_library

Not doing so is the reason for the "undefined reference .. " linker errors.


Sometimes, header files for a library are installed in /usr/include/library_name, so you have to include like this:

#include <library_name/someheader.h>

Use your file manager (or console commands) to locate the header file on your system and see if you should prefix the header's filename with a directory name.


The undefined reference error you're getting is a linker error. You're getting this error because you're not linking in libsynaptics along with your program, thus the linker cannot find the "implementation" of the libsynaptics functions you're using.

If you're compiling from the command-line with GCC, you must add the -lsynaptics option to link in the libsynaptics library. If you're using an IDE, you must find the place where you can specify libraries to link to and add synaptics. If you're using a makefile, you have to modify your list of linker flags so that it adds -lsynaptics.

Also the -L <path_to_library> flag for the search path needs to be added, so the linker can find the library, unless it's installed in one of the standard linker search paths.

See this tutorial on linking to libraries with GCC.