$ make g++ -Iinclude -I/usr/include/cairomm-1.0 -I/usr/lib/x86_64-linux-gnu/cairomm-1.0/include -I/usr/include/cairo -I/usr/include/sigc++-2.0 -I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -std=c++11 -g -c -o src/box.o src/box.cpp g++ -Iinclude -I/usr/include/cairomm-1.0 -I/usr/lib/x86_64-linux-gnu/cairomm-1.0/include -I/usr/include/cairo -I/usr/include/sigc++-2.0 -I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -std=c++11 -g -c -o src/boxTree.o src/boxTree.cpp g++ -Iinclude -I/usr/include/cairomm-1.0 -I/usr/lib/x86_64-linux-gnu/cairomm-1.0/include -I/usr/include/cairo -I/usr/include/sigc++-2.0 -I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -std=c++11 -g -c -o src/event.o src/event.cpp g++ -Iinclude -I/usr/include/cairomm-1.0 -I/usr/lib/x86_64-linux-gnu/cairomm-1.0/include -I/usr/include/cairo -I/usr/include/sigc++-2.0 -I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -std=c++11 -g -c -o src/eventHandlers.o src/eventHandlers.cpp g++ -Iinclude -I/usr/include/cairomm-1.0 -I/usr/lib/x86_64-linux-gnu/cairomm-1.0/include -I/usr/include/cairo -I/usr/include/sigc++-2.0 -I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -std=c++11 -g -c -o src/ewmh.o src/ewmh.cpp g++ -Iinclude -I/usr/include/cairomm-1.0 -I/usr/lib/x86_64-linux-gnu/cairomm-1.0/include -I/usr/include/cairo -I/usr/include/sigc++-2.0 -I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -std=c++11 -g -c -o src/keyHandlers.o src/keyHandlers.cpp g++ -Iinclude -I/usr/include/cairomm-1.0 -I/usr/lib/x86_64-linux-gnu/cairomm-1.0/include -I/usr/include/cairo -I/usr/include/sigc++-2.0 -I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -std=c++11 -g -c -o src/main.o src/main.cpp g++ -Iinclude -I/usr/include/cairomm-1.0 -I/usr/lib/x86_64-linux-gnu/cairomm-1.0/include -I/usr/include/cairo -I/usr/include/sigc++-2.0 -I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -std=c++11 -g -c -o src/monitor.o src/monitor.cpp g++ -Iinclude -I/usr/include/cairomm-1.0 -I/usr/lib/x86_64-linux-gnu/cairomm-1.0/include -I/usr/include/cairo -I/usr/include/sigc++-2.0 -I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -std=c++11 -g -c -o src/setup.o src/setup.cpp g++ -Iinclude -I/usr/include/cairomm-1.0 -I/usr/lib/x86_64-linux-gnu/cairomm-1.0/include -I/usr/include/cairo -I/usr/include/sigc++-2.0 -I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -std=c++11 -g -c -o src/statusBar.o src/statusBar.cpp g++ -Iinclude -I/usr/include/cairomm-1.0 -I/usr/lib/x86_64-linux-gnu/cairomm-1.0/include -I/usr/include/cairo -I/usr/include/sigc++-2.0 -I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -std=c++11 -g -c -o src/tag.o src/tag.cpp g++ -Iinclude -I/usr/include/cairomm-1.0 -I/usr/lib/x86_64-linux-gnu/cairomm-1.0/include -I/usr/include/cairo -I/usr/include/sigc++-2.0 -I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -std=c++11 -g -c -o src/windowContainer.o src/windowContainer.cpp g++ -Iinclude -I/usr/include/cairomm-1.0 -I/usr/lib/x86_64-linux-gnu/cairomm-1.0/include -I/usr/include/cairo -I/usr/include/sigc++-2.0 -I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -std=c++11 -g -c -o src/window.o src/window.cpp src/window.cpp: In member function ‘void Window::setGeometry(xcb_rectangle_t)’: src/window.cpp:107:69: warning: narrowing conversion of ‘rect.xcb_rectangle_t::x’ from ‘int16_t {aka short int}’ to ‘uint32_t {aka unsigned int}’ inside { } [-Wnarrowing] src/window.cpp:107:69: warning: narrowing conversion of ‘rect.xcb_rectangle_t::y’ from ‘int16_t {aka short int}’ to ‘uint32_t {aka unsigned int}’ inside { } [-Wnarrowing] g++ -Iinclude -I/usr/include/cairomm-1.0 -I/usr/lib/x86_64-linux-gnu/cairomm-1.0/include -I/usr/include/cairo -I/usr/include/sigc++-2.0 -I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -std=c++11 -g -c -o src/xcb_surface.o src/xcb_surface.cpp g++ -Iinclude -I/usr/include/cairomm-1.0 -I/usr/lib/x86_64-linux-gnu/cairomm-1.0/include -I/usr/include/cairo -I/usr/include/sigc++-2.0 -I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -std=c++11 -g -lcairomm-1.0 -lcairo -lsigc-2.0 -lxcb -lxcb-util -lxcb-icccm -lxcb-ewmh -lxcb-keysyms -lxcb-randr ./src/box.o ./src/boxTree.o ./src/event.o ./src/eventHandlers.o ./src/ewmh.o ./src/keyHandlers.o ./src/main.o ./src/monitor.o ./src/setup.o ./src/statusBar.o ./src/tag.o ./src/windowContainer.o ./src/window.o ./src/xcb_surface.o -o mirrorWM ./src/event.o: In function `EventDispatcher::handleEvent(std::shared_ptr)': /home/koder/Desktop/mirror/src/event.cpp:26: undefined reference to `xcb_event_get_label' ./src/event.o: In function `EventDispatcher::eventLoop()': /home/koder/Desktop/mirror/src/event.cpp:48: undefined reference to `xcb_poll_for_event' /home/koder/Desktop/mirror/src/event.cpp:52: undefined reference to `xcb_flush' ./src/eventHandlers.o: In function `EventHandler::handleMapRequest(std::shared_ptr)': /home/koder/Desktop/mirror/src/eventHandlers.cpp:22: undefined reference to `xcb_map_window' ./src/eventHandlers.o: In function `EventHandler::handleConfigureRequest(std::shared_ptr)': /home/koder/Desktop/mirror/src/eventHandlers.cpp:97: undefined reference to `xcb_configure_window' /home/koder/Desktop/mirror/src/eventHandlers.cpp:98: undefined reference to `xcb_flush' ./src/eventHandlers.o: In function `EventHandler::handleError(std::shared_ptr)': /home/koder/Desktop/mirror/src/eventHandlers.cpp:150: undefined reference to `xcb_event_get_error_label' ./src/ewmh.o: In function `ewmhInit(xcb_connection_t*)': /home/koder/Desktop/mirror/src/ewmh.cpp:6: undefined reference to `xcb_ewmh_init_atoms' /home/koder/Desktop/mirror/src/ewmh.cpp:6: undefined reference to `xcb_ewmh_init_atoms_replies' ./src/keyHandlers.o: In function `KeyHandler::KeyHandler(Setup*)': /home/koder/Desktop/mirror/src/keyHandlers.cpp:5: undefined reference to `xcb_key_symbols_alloc' ./src/keyHandlers.o: In function `KeyHandler::~KeyHandler()': /home/koder/Desktop/mirror/src/keyHandlers.cpp:17: undefined reference to `xcb_key_symbols_free' ./src/keyHandlers.o: In function `KeyHandler::handleMappingNotify(std::shared_ptr)': /home/koder/Desktop/mirror/src/keyHandlers.cpp:23: undefined reference to `xcb_refresh_keyboard_mapping' ./src/keyHandlers.o: In function `KeyHandler::handleKeyPress(std::shared_ptr)': /home/koder/Desktop/mirror/src/keyHandlers.cpp:35: undefined reference to `xcb_key_symbols_get_keysym' ./src/keyHandlers.o: In function `KeyHandler::handleKeyRelease(std::shared_ptr)': /home/koder/Desktop/mirror/src/keyHandlers.cpp:50: undefined reference to `xcb_key_symbols_get_keysym' ./src/keyHandlers.o: In function `KeyHandler::getMod(unsigned int)': /home/koder/Desktop/mirror/src/keyHandlers.cpp:78: undefined reference to `xcb_flush' /home/koder/Desktop/mirror/src/keyHandlers.cpp:81: undefined reference to `xcb_get_modifier_mapping' /home/koder/Desktop/mirror/src/keyHandlers.cpp:81: undefined reference to `xcb_get_modifier_mapping_reply' /home/koder/Desktop/mirror/src/keyHandlers.cpp:87: undefined reference to `xcb_get_modifier_mapping_keycodes' /home/koder/Desktop/mirror/src/keyHandlers.cpp:90: undefined reference to `xcb_key_symbols_get_keycode' ./src/keyHandlers.o: In function `KeyHandler::grab(unsigned int, unsigned int)': /home/koder/Desktop/mirror/src/keyHandlers.cpp:115: undefined reference to `xcb_key_symbols_get_keycode' ./src/keyHandlers.o: In function `KeyHandler::ungrab(unsigned int)': /home/koder/Desktop/mirror/src/keyHandlers.cpp:133: undefined reference to `xcb_key_symbols_get_keycode' /home/koder/Desktop/mirror/src/keyHandlers.cpp:141: undefined reference to `xcb_ungrab_key' ./src/keyHandlers.o: In function `KeyHandler::grabWithLocks(unsigned int, unsigned char)': /home/koder/Desktop/mirror/src/keyHandlers.cpp:219: undefined reference to `xcb_grab_key_checked' /home/koder/Desktop/mirror/src/keyHandlers.cpp:221: undefined reference to `xcb_request_check' /home/koder/Desktop/mirror/src/keyHandlers.cpp:227: undefined reference to `xcb_grab_key' /home/koder/Desktop/mirror/src/keyHandlers.cpp:229: undefined reference to `xcb_grab_key' /home/koder/Desktop/mirror/src/keyHandlers.cpp:231: undefined reference to `xcb_grab_key' /home/koder/Desktop/mirror/src/keyHandlers.cpp:233: undefined reference to `xcb_grab_key' /home/koder/Desktop/mirror/src/keyHandlers.cpp:235: undefined reference to `xcb_grab_key' ./src/keyHandlers.o:/home/koder/Desktop/mirror/src/keyHandlers.cpp:237: more undefined references to `xcb_grab_key' follow ./src/main.o: In function `operator()': /home/koder/Desktop/mirror/src/main.cpp:65: undefined reference to `xcb_grab_keyboard' /home/koder/Desktop/mirror/src/main.cpp:79: undefined reference to `xcb_ungrab_keyboard' ./src/setup.o: In function `Setup::Setup()': /home/koder/Desktop/mirror/src/setup.cpp:8: undefined reference to `xcb_connect' /home/koder/Desktop/mirror/src/setup.cpp:9: undefined reference to `xcb_get_setup' /home/koder/Desktop/mirror/src/setup.cpp:9: undefined reference to `xcb_setup_roots_iterator' /home/koder/Desktop/mirror/src/setup.cpp:17: undefined reference to `xcb_change_window_attributes_checked' /home/koder/Desktop/mirror/src/setup.cpp:18: undefined reference to `xcb_request_check' ./src/setup.o: In function `Setup::~Setup()': /home/koder/Desktop/mirror/src/setup.cpp:34: undefined reference to `xcb_disconnect' ./src/setup.o: In function `Setup::getXrandrMonitors()': /home/koder/Desktop/mirror/src/setup.cpp:60: undefined reference to `xcb_randr_id' /home/koder/Desktop/mirror/src/setup.cpp:60: undefined reference to `xcb_get_extension_data' /home/koder/Desktop/mirror/src/setup.cpp:63: undefined reference to `xcb_randr_query_version' /home/koder/Desktop/mirror/src/setup.cpp:63: undefined reference to `xcb_randr_query_version_reply' /home/koder/Desktop/mirror/src/setup.cpp:69: undefined reference to `xcb_randr_get_screen_resources' /home/koder/Desktop/mirror/src/setup.cpp:70: undefined reference to `xcb_randr_get_screen_resources_reply' /home/koder/Desktop/mirror/src/setup.cpp:77: undefined reference to `xcb_randr_get_screen_resources_crtcs' /home/koder/Desktop/mirror/src/setup.cpp:80: undefined reference to `xcb_randr_get_crtc_info' /home/koder/Desktop/mirror/src/setup.cpp:81: undefined reference to `xcb_randr_get_crtc_info_reply' /home/koder/Desktop/mirror/src/setup.cpp:82: undefined reference to `xcb_randr_get_crtc_info_outputs_length' ./src/setup.o: In function `Setup::getCurrentMonitor()': /home/koder/Desktop/mirror/src/setup.cpp:212: undefined reference to `xcb_query_pointer_unchecked' /home/koder/Desktop/mirror/src/setup.cpp:212: undefined reference to `xcb_query_pointer_reply' ./src/statusBar.o: In function `StatusBar::StatusBar(Setup*, Monitor)': /home/koder/Desktop/mirror/src/statusBar.cpp:9: undefined reference to `xcb_generate_id' /home/koder/Desktop/mirror/src/statusBar.cpp:14: undefined reference to `xcb_create_window' /home/koder/Desktop/mirror/src/statusBar.cpp:17: undefined reference to `xcb_screen_allowed_depths_iterator' /home/koder/Desktop/mirror/src/statusBar.cpp:20: undefined reference to `xcb_depth_visuals_iterator' /home/koder/Desktop/mirror/src/statusBar.cpp:21: undefined reference to `xcb_visualtype_next' /home/koder/Desktop/mirror/src/statusBar.cpp:18: undefined reference to `xcb_depth_next' /home/koder/Desktop/mirror/src/statusBar.cpp:30: undefined reference to `Cairo::Context::create(Cairo::RefPtr const&)' /home/koder/Desktop/mirror/src/statusBar.cpp:33: undefined reference to `xcb_map_window' /home/koder/Desktop/mirror/src/statusBar.cpp:36: undefined reference to `xcb_flush' ./src/statusBar.o: In function `StatusBar::draw()': /home/koder/Desktop/mirror/src/statusBar.cpp:52: undefined reference to `Cairo::Context::set_source_rgb(double, double, double)' /home/koder/Desktop/mirror/src/statusBar.cpp:53: undefined reference to `Cairo::Context::paint()' /home/koder/Desktop/mirror/src/statusBar.cpp:54: undefined reference to `Cairo::Context::move_to(double, double)' /home/koder/Desktop/mirror/src/statusBar.cpp:55: undefined reference to `Cairo::Context::set_source_rgb(double, double, double)' /home/koder/Desktop/mirror/src/statusBar.cpp:56: undefined reference to `Cairo::Context::set_font_size(double)' /home/koder/Desktop/mirror/src/statusBar.cpp:57: undefined reference to `Cairo::Context::show_text(std::string const&)' /home/koder/Desktop/mirror/src/statusBar.cpp:59: undefined reference to `Cairo::Context::show_text(std::string const&)' /home/koder/Desktop/mirror/src/statusBar.cpp:61: undefined reference to `Cairo::Context::get_text_extents(std::string const&, cairo_text_extents_t&) const' /home/koder/Desktop/mirror/src/statusBar.cpp:65: undefined reference to `Cairo::Context::show_text(std::string const&)' /home/koder/Desktop/mirror/src/statusBar.cpp:66: undefined reference to `xcb_flush' ./src/window.o: In function `Window::Window(Setup*, unsigned int, std::string)': /home/koder/Desktop/mirror/src/window.cpp:14: undefined reference to `xcb_change_window_attributes' /home/koder/Desktop/mirror/src/window.cpp:15: undefined reference to `xcb_flush' ./src/window.o: In function `Window::handleHints()': /home/koder/Desktop/mirror/src/window.cpp:31: undefined reference to `xcb_icccm_get_wm_hints' /home/koder/Desktop/mirror/src/window.cpp:31: undefined reference to `xcb_icccm_get_wm_hints_reply' ./src/window.o: In function `Window::handleGeometry()': /home/koder/Desktop/mirror/src/window.cpp:41: undefined reference to `xcb_get_geometry_unchecked' /home/koder/Desktop/mirror/src/window.cpp:41: undefined reference to `xcb_get_geometry_reply' ./src/window.o: In function `Window::handleTransient()': /home/koder/Desktop/mirror/src/window.cpp:54: undefined reference to `xcb_icccm_get_wm_transient_for_unchecked' /home/koder/Desktop/mirror/src/window.cpp:54: undefined reference to `xcb_icccm_get_wm_transient_for_reply' ./src/window.o: In function `Window::focus()': /home/koder/Desktop/mirror/src/window.cpp:70: undefined reference to `xcb_set_input_focus' ./src/window.o: In function `Window::close()': /home/koder/Desktop/mirror/src/window.cpp:82: undefined reference to `xcb_intern_atom_unchecked' /home/koder/Desktop/mirror/src/window.cpp:80: undefined reference to `xcb_intern_atom_reply' /home/koder/Desktop/mirror/src/window.cpp:97: undefined reference to `xcb_send_event' ./src/window.o: In function `Window::kill()': /home/koder/Desktop/mirror/src/window.cpp:102: undefined reference to `xcb_kill_client' ./src/window.o: In function `Window::setGeometry(xcb_rectangle_t)': /home/koder/Desktop/mirror/src/window.cpp:122: undefined reference to `xcb_configure_window' /home/koder/Desktop/mirror/src/window.cpp:123: undefined reference to `xcb_flush' ./src/window.o: In function `Window::map()': /home/koder/Desktop/mirror/src/window.cpp:141: undefined reference to `xcb_map_window' ./src/window.o: In function `Window::unmap()': /home/koder/Desktop/mirror/src/window.cpp:146: undefined reference to `xcb_unmap_window' ./src/window.o: In function `Window::sendTakeFocus()': /home/koder/Desktop/mirror/src/window.cpp:158: undefined reference to `xcb_intern_atom_unchecked' /home/koder/Desktop/mirror/src/window.cpp:156: undefined reference to `xcb_intern_atom_reply' /home/koder/Desktop/mirror/src/window.cpp:174: undefined reference to `xcb_send_event' ./src/window.o: In function `Window::sendConfigureNotify()': /home/koder/Desktop/mirror/src/window.cpp:191: undefined reference to `xcb_send_event' /home/koder/Desktop/mirror/src/window.cpp:192: undefined reference to `xcb_flush' ./src/window.o: In function `Window::stackAbove()': /home/koder/Desktop/mirror/src/window.cpp:198: undefined reference to `xcb_configure_window' ./src/window.o: In function `Window::stackBelow()': /home/koder/Desktop/mirror/src/window.cpp:204: undefined reference to `xcb_configure_window' ./src/xcb_surface.o: In function `Cairo::XcbSurface::XcbSurface(_cairo_surface*, bool)': /home/koder/Desktop/mirror/src/xcb_surface.cpp:30: undefined reference to `Cairo::Surface::Surface(_cairo_surface*, bool)' ./src/xcb_surface.o: In function `Cairo::XcbSurface::~XcbSurface()': /home/koder/Desktop/mirror/src/xcb_surface.cpp:33: undefined reference to `Cairo::Surface::~Surface()' ./src/xcb_surface.o: In function `Cairo::XcbSurface::create(xcb_connection_t*, unsigned int, xcb_visualtype_t*, int, int)': /home/koder/Desktop/mirror/src/xcb_surface.cpp:40: undefined reference to `cairo_xcb_surface_create' /home/koder/Desktop/mirror/src/xcb_surface.cpp:41: undefined reference to `cairo_surface_status' ./src/xcb_surface.o: In function `Cairo::XcbSurface::create(xcb_connection_t*, xcb_screen_t*, unsigned int, int, int)': /home/koder/Desktop/mirror/src/xcb_surface.cpp:47: undefined reference to `cairo_xcb_surface_create_for_bitmap' /home/koder/Desktop/mirror/src/xcb_surface.cpp:48: undefined reference to `cairo_surface_status' ./src/xcb_surface.o: In function `Cairo::XcbSurface::set_size(int, int)': /home/koder/Desktop/mirror/src/xcb_surface.cpp:54: undefined reference to `cairo_xcb_surface_set_size' ./src/xcb_surface.o: In function `Cairo::Surface::get_status() const': /usr/include/cairomm-1.0/cairomm/surface.h:328: undefined reference to `cairo_surface_status' ./src/xcb_surface.o: In function `Cairo::check_status_and_throw_exception(_cairo_status)': /home/koder/Desktop/mirror/include/cairomm/private.h:37: undefined reference to `Cairo::throw_exception(_cairo_status)' ./src/xcb_surface.o:(.rodata._ZTIN5Cairo10XcbSurfaceE[_ZTIN5Cairo10XcbSurfaceE]+0x10): undefined reference to `typeinfo for Cairo::Surface' collect2: error: ld returned 1 exit status make: *** [mirrorWM] Error 1