Having trouble building gmic
I’m guessing I’m missing a required library
# make gmic
g++ -o gmic gmic_cli.cpp
/usr/bin/ld: /tmp/ccTMoUFg.o: in function `main':
gmic_cli.cpp:(.text+0x1a5): undefined reference to `gmic::init_rc(char const*)'
/usr/bin/ld: gmic_cli.cpp:(.text+0x221): undefined reference to `gmic::gmic<float>(char const*, char const*, bool, float*, bool*, float const&)'
/usr/bin/ld: gmic_cli.cpp:(.text+0x25f): undefined reference to `gmic::set_variable(char const*, char, char const*, double, unsigned int const*)'
/usr/bin/ld: gmic_cli.cpp:(.text+0x28f): undefined reference to `gmic::add_commands(char const*, char const*, bool, unsigned int*, unsigned int*, bool*)'
/usr/bin/ld: gmic_cli.cpp:(.text+0x2fd): undefined reference to `gmic::path_rc(char const*)'
/usr/bin/ld: gmic_cli.cpp:(.text+0x439): undefined reference to `gmic::add_commands(char const*, char const*, bool, unsigned int*, unsigned int*, bool*)'
/usr/bin/ld: gmic_cli.cpp:(.text+0x4c2): undefined reference to `gmic::path_user(char const*)'
/usr/bin/ld: gmic_cli.cpp:(.text+0x5b0): undefined reference to `gmic::add_commands(char const*, char const*, bool, unsigned int*, unsigned int*, bool*)'
/usr/bin/ld: gmic_cli.cpp:(.text+0x96e): undefined reference to `gmic::gmic<float>(char const*, char const*, bool, float*, bool*, float const&)'
/usr/bin/ld: gmic_cli.cpp:(.text+0x9af): undefined reference to `gmic::add_commands(_IO_FILE*, char const*, bool, unsigned int*, unsigned int*, bool*)'
/usr/bin/ld: gmic_cli.cpp:(.text+0x9de): undefined reference to `gmic::hashcode(char const*, bool)'
/usr/bin/ld: gmic_cli.cpp:(.text+0xa2c): undefined reference to `bool gmic::search_sorted<gmic_library::gmic_list<char> >(char const*, gmic_library::gmic_list<char> const&, unsigned int, unsigned int&)'
/usr/bin/ld: gmic_cli.cpp:(.text+0xa8f): undefined reference to `gmic::~gmic()'
/usr/bin/ld: gmic_cli.cpp:(.text+0xfa7): undefined reference to `gmic& gmic::run<float>(char const*, gmic_library::gmic_list<float>&, gmic_library::gmic_list<char>&)'
/usr/bin/ld: gmic_cli.cpp:(.text+0x1024): undefined reference to `gmic::~gmic()'
/usr/bin/ld: gmic_cli.cpp:(.text+0x1161): undefined reference to `gmic::~gmic()'
/usr/bin/ld: gmic_cli.cpp:(.text+0x13e7): undefined reference to `gmic::stdlib'
/usr/bin/ld: gmic_cli.cpp:(.text+0x14d1): undefined reference to `gmic::gmic<float>(char const*, gmic_library::gmic_list<float>&, gmic_library::gmic_list<char>&, char const*, bool, float*, bool*)'
/usr/bin/ld: gmic_cli.cpp:(.text+0x14e4): undefined reference to `gmic::~gmic()'
/usr/bin/ld: gmic_cli.cpp:(.text+0x15c4): undefined reference to `gmic::stdlib'
/usr/bin/ld: gmic_cli.cpp:(.text+0x161a): undefined reference to `gmic::gmic<float>(char const*, gmic_library::gmic_list<float>&, gmic_library::gmic_list<char>&, char const*, bool, float*, bool*)'
/usr/bin/ld: gmic_cli.cpp:(.text+0x162d): undefined reference to `gmic::~gmic()'
/usr/bin/ld: gmic_cli.cpp:(.text+0x16ee): undefined reference to `gmic::~gmic()'
/usr/bin/ld: /tmp/ccTMoUFg.o: in function `gmic_library::CImgDisplay::screen_width()':
gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay12screen_widthEv[_ZN12gmic_library11CImgDisplay12screen_widthEv]+0x2c): undefined reference to `XOpenDisplay'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay12screen_widthEv[_ZN12gmic_library11CImgDisplay12screen_widthEv]+0x98): undefined reference to `XCloseDisplay'
/usr/bin/ld: /tmp/ccTMoUFg.o: in function `gmic_library::CImgDisplay::screen_height()':
gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay13screen_heightEv[_ZN12gmic_library11CImgDisplay13screen_heightEv]+0x2c): undefined reference to `XOpenDisplay'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay13screen_heightEv[_ZN12gmic_library11CImgDisplay13screen_heightEv]+0x98): undefined reference to `XCloseDisplay'
/usr/bin/ld: /tmp/ccTMoUFg.o: in function `gmic_library::CImgDisplay::_handle_events(_XEvent const*)':
gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent[_ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent]+0x1ac): undefined reference to `XUnmapWindow'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent[_ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent]+0x20c): undefined reference to `XCheckWindowEvent'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent[_ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent]+0x2d9): undefined reference to `XResizeWindow'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent[_ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent]+0x3a6): undefined reference to `XCheckWindowEvent'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent[_ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent]+0x3fa): undefined reference to `XGetWindowAttributes'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent[_ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent]+0x416): undefined reference to `XSync'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent[_ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent]+0x44f): undefined reference to `XSetInputFocus'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent[_ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent]+0x592): undefined reference to `XCheckWindowEvent'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent[_ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent]+0x70d): undefined reference to `XCheckWindowEvent'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent[_ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent]+0x751): undefined reference to `XLookupString'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent[_ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent]+0x78b): undefined reference to `XQueryKeymap'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent[_ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent]+0x816): undefined reference to `XLookupString'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent[_ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent]+0x864): undefined reference to `XCheckWindowEvent'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent[_ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent]+0x948): undefined reference to `XCheckWindowEvent'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent[_ZN12gmic_library11CImgDisplay14_handle_eventsEPK7_XEvent]+0x9be): undefined reference to `XCheckWindowEvent'
/usr/bin/ld: /tmp/ccTMoUFg.o: in function `gmic_library::CImgDisplay::_events_thread(void*)':
gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay14_events_threadEPv[_ZN12gmic_library11CImgDisplay14_events_threadEPv]+0x6f): undefined reference to `XCheckTypedEvent'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay14_events_threadEPv[_ZN12gmic_library11CImgDisplay14_events_threadEPv]+0x9a): undefined reference to `XCheckMaskEvent'
/usr/bin/ld: /tmp/ccTMoUFg.o: in function `gmic_library::CImgDisplay::_set_colormap(unsigned long&, unsigned int)':
gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay13_set_colormapERmj[_ZN12gmic_library11CImgDisplay13_set_colormapERmj]+0x2ac): undefined reference to `XStoreColors'
/usr/bin/ld: /tmp/ccTMoUFg.o: in function `gmic_library::CImgDisplay::_map_window()':
gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay11_map_windowEv[_ZN12gmic_library11CImgDisplay11_map_windowEv]+0x40): undefined reference to `XMapRaised'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay11_map_windowEv[_ZN12gmic_library11CImgDisplay11_map_windowEv]+0x69): undefined reference to `XWindowEvent'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay11_map_windowEv[_ZN12gmic_library11CImgDisplay11_map_windowEv]+0xbe): undefined reference to `XGetWindowAttributes'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay11_map_windowEv[_ZN12gmic_library11CImgDisplay11_map_windowEv]+0xd7): undefined reference to `XSync'
/usr/bin/ld: /tmp/ccTMoUFg.o: in function `gmic_library::CImgDisplay::_paint(bool)':
gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay6_paintEb[_ZN12gmic_library11CImgDisplay6_paintEb]+0x10f): undefined reference to `XSendEvent'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay6_paintEb[_ZN12gmic_library11CImgDisplay6_paintEb]+0x18e): undefined reference to `XPutImage'
/usr/bin/ld: /tmp/ccTMoUFg.o: in function `gmic_library::CImgDisplay::_init_fullscreen()':
gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay16_init_fullscreenEv[_ZN12gmic_library11CImgDisplay16_init_fullscreenEv]+0x94): undefined reference to `XDefaultScreen'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay16_init_fullscreenEv[_ZN12gmic_library11CImgDisplay16_init_fullscreenEv]+0xa4): undefined reference to `XBlackPixel'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay16_init_fullscreenEv[_ZN12gmic_library11CImgDisplay16_init_fullscreenEv]+0x105): undefined reference to `XCreateWindow'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay16_init_fullscreenEv[_ZN12gmic_library11CImgDisplay16_init_fullscreenEv]+0x139): undefined reference to `XSelectInput'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay16_init_fullscreenEv[_ZN12gmic_library11CImgDisplay16_init_fullscreenEv]+0x156): undefined reference to `XMapRaised'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay16_init_fullscreenEv[_ZN12gmic_library11CImgDisplay16_init_fullscreenEv]+0x17f): undefined reference to `XWindowEvent'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay16_init_fullscreenEv[_ZN12gmic_library11CImgDisplay16_init_fullscreenEv]+0x1ae): undefined reference to `XGetWindowAttributes'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay16_init_fullscreenEv[_ZN12gmic_library11CImgDisplay16_init_fullscreenEv]+0x1ca): undefined reference to `XSync'
/usr/bin/ld: /tmp/ccTMoUFg.o: in function `gmic_library::CImgDisplay::_desinit_fullscreen()':
gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay19_desinit_fullscreenEv[_ZN12gmic_library11CImgDisplay19_desinit_fullscreenEv]+0x35): undefined reference to `XUngrabKeyboard'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay19_desinit_fullscreenEv[_ZN12gmic_library11CImgDisplay19_desinit_fullscreenEv]+0x5f): undefined reference to `XDestroyWindow'
/usr/bin/ld: /tmp/ccTMoUFg.o: in function `gmic_library::CImgDisplay::_assign(unsigned int, unsigned int, char const*, unsigned int, bool, bool)':
gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb[_ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb]+0x100): undefined reference to `XOpenDisplay'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb[_ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb]+0x343): undefined reference to `XVisualIDFromVisual'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb[_ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb]+0x369): undefined reference to `XGetVisualInfo'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb[_ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb]+0x3b5): undefined reference to `XFree'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb[_ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb]+0x5be): undefined reference to `XCreateWindow'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb[_ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb]+0x637): undefined reference to `XCreateSimpleWindow'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb[_ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb]+0x66e): undefined reference to `XSelectInput'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb[_ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb]+0x6b0): undefined reference to `XStoreName'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb[_ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb]+0x710): undefined reference to `XCreateColormap'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb[_ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb]+0x771): undefined reference to `XSetWindowColormap'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb[_ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb]+0x776): undefined reference to `XAllocClassHint'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb[_ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb]+0x7b5): undefined reference to `XSetClassHint'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb[_ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb]+0x7c1): undefined reference to `XFree'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb[_ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb]+0x8d1): undefined reference to `XCreateImage'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb[_ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb]+0x8fc): undefined reference to `XInternAtom'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb[_ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb]+0x923): undefined reference to `XInternAtom'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb[_ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb]+0x961): undefined reference to `XSetWMProtocols'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb[_ZN12gmic_library11CImgDisplay7_assignEjjPKcjbb]+0x9a3): undefined reference to `XGrabKeyboard'
/usr/bin/ld: /tmp/ccTMoUFg.o: in function `gmic_library::CImgDisplay::assign()':
gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay6assignEv[_ZN12gmic_library11CImgDisplay6assignEv]+0x154): undefined reference to `XFreeColormap'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay6assignEv[_ZN12gmic_library11CImgDisplay6assignEv]+0x16e): undefined reference to `XDestroyWindow'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay6assignEv[_ZN12gmic_library11CImgDisplay6assignEv]+0x17f): undefined reference to `XSync'
/usr/bin/ld: /tmp/ccTMoUFg.o: in function `gmic_library::CImgDisplay::resize(int, int, bool)':
gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay6resizeEiib[_ZN12gmic_library11CImgDisplay6resizeEiib]+0x23c): undefined reference to `XResizeWindow'
/usr/bin/ld: gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay6resizeEiib[_ZN12gmic_library11CImgDisplay6resizeEiib]+0x260): undefined reference to `XGetWindowAttributes'
/usr/bin/ld: /tmp/ccTMoUFg.o: in function `gmic_library::CImgDisplay::move(int, int)':
gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay4moveEii[_ZN12gmic_library11CImgDisplay4moveEii]+0x84): undefined reference to `XMoveWindow'
/usr/bin/ld: /tmp/ccTMoUFg.o: in function `void gmic_library::CImgDisplay::_resize<unsigned char>(unsigned char, unsigned int, unsigned int, bool)':
gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay7_resizeIhEEvT_jjb[_ZN12gmic_library11CImgDisplay7_resizeIhEEvT_jjb]+0x12d): undefined reference to `XCreateImage'
/usr/bin/ld: /tmp/ccTMoUFg.o: in function `void gmic_library::CImgDisplay::_resize<unsigned short>(unsigned short, unsigned int, unsigned int, bool)':
gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay7_resizeItEEvT_jjb[_ZN12gmic_library11CImgDisplay7_resizeItEEvT_jjb]+0x135): undefined reference to `XCreateImage'
/usr/bin/ld: /tmp/ccTMoUFg.o: in function `void gmic_library::CImgDisplay::_resize<unsigned int>(unsigned int, unsigned int, unsigned int, bool)':
gmic_cli.cpp:(.text._ZN12gmic_library11CImgDisplay7_resizeIjEEvT_jjb[_ZN12gmic_library11CImgDisplay7_resizeIjEEvT_jjb]+0x135): undefined reference to `XCreateImage'
collect2: error: ld returned 1 exit status
make: *** [Makefile:437: gmic] Error 1