I'm using xcb_atom.h in a C++ project. I had problems with the linking phase and after a research i fixed the problem with something like: #ifdef __cplusplus extern "C" { #endif #include <xcb/xcb_atom.h> #ifdef __cplusplus } #endif extern is present in all other xcb utils packages, so i think should be added to xcb_atom too. Hope this help.