I'm trying to install the program https://github.com/arsf/lag

Here is the result ./configure

checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports nested variables... yes checking for g++... g++ checking whether the C++ compiler works... yes checking for C++ compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking for style of include used by make... GNU checking dependency style of g++... gcc3 checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for GTKmm... yes checking for GTKGLextmm... yes checking for GThread... yes checking for laslib... yes checking for lidarquadtree... yes checking for gcc... gcc checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether gcc understands -c and -o together... yes checking dependency style of gcc... gcc3 checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for stdint.h... (cached) yes checking for stdlib.h... (cached) yes checking for string.h... (cached) yes checking that generated files are newer than configure... done configure: creating ./config.status config.status: creating Makefile config.status: creating config.h config.status: config.h is unchanged config.status: executing depfiles commands 

It seems to be okay, as I understand it.

But make gives a huge number of errors "undefined reference to" (here I bring only a small part of them):

 DrawWorker.cpp:(.text+0x35b): undefined reference to `Glib::Mutex::lock()' DrawWorker.cpp:(.text+0x370): undefined reference to `Glib::Cond::signal()' DrawWorker.cpp:(.text+0x38d): undefined reference to `Glib::Mutex::unlock()' src/lag-DrawWorker.o: In function `DrawWorker::isDrawing()': DrawWorker.cpp:(.text+0x3b1): undefined reference to `Glib::Mutex::lock()' DrawWorker.cpp:(.text+0x3bd): undefined reference to `Glib::Mutex::unlock()' src/lag-DrawWorker.o: In function `DrawWorker::run()': DrawWorker.cpp:(.text+0xb1): undefined reference to `Glib::Mutex::unlock()' src/lag-DrawWorker.o: In function `DrawWorker::stop()': DrawWorker.cpp:(.text+0x20e): undefined reference to `Glib::Mutex::unlock()' src/lag-DrawWorker.o: In function `DrawWorker::~DrawWorker()': DrawWorker.cpp:(.text+0x2f8): undefined reference to `Glib::Dispatcher::~Dispatcher()' src/lag-DrawWorker.o: In function `DrawWorker::draw(PointBucket**, int)': DrawWorker.cpp:(.text+0x382): undefined reference to `Glib::Mutex::unlock()' src/lag-DrawWorker.o: In function `_GLOBAL__sub_I__ZN10DrawWorkerC2EP10LagDisplay': DrawWorker.cpp:(.text.startup+0x10): undefined reference to `Glib::ustring::ustring(char const*)' DrawWorker.cpp:(.text.startup+0x17): undefined reference to `Glib::ustring::~ustring()' DrawWorker.cpp:(.text.startup+0x40): undefined reference to `Glib::ustring::ustring(char const*)' DrawWorker.cpp:(.text.startup+0x69): undefined reference to `Glib::ustring::ustring(char const*)' DrawWorker.cpp:(.text.startup+0x92): undefined reference to `Glib::ustring::ustring(char const*)' DrawWorker.cpp:(.text.startup+0xbb): undefined reference to `Glib::ustring::ustring(char const*)' DrawWorker.cpp:(.text.startup+0xe4): undefined reference to `Glib::ustring::ustring(char const*)' src/lag-DrawWorker.o:DrawWorker.cpp:(.text.startup+0x10d): more undefined references to `Glib::ustring::ustring(char const*)' follow src/lag-SelectionBox.o: In function `SelectionBox::SelectionBox(double, double, double, double, double, double, double, double, double, double, double, double)': SelectionBox.cpp:(.text+0x85): undefined reference to `Point::Point()' SelectionBox.cpp:(.text+0xa3): undefined reference to `Point::move(double, double, double)' SelectionBox.cpp:(.text+0xbe): undefined reference to `Point::move(double, double, double)' SelectionBox.cpp:(.text+0xd9): undefined reference to `Point::move(double, double, double)' src/lag-SelectionBox.o: In function `SelectionBox::SelectionBox(Point, Point, Point, Point)': SelectionBox.cpp:(.text+0x116): undefined reference to `Point::Point()' src/lag-SelectionBox.o: In function `SelectionBox::move(double, double, double)': SelectionBox.cpp:(.text+0x1d9): undefined reference to `Point::move(double, double, double)' src/lag-SelectionBox.o: In function `SelectionBox::translate(double, double, double)': SelectionBox.cpp:(.text+0x229): undefined reference to `Point::translate(double, double, double)' src/lag-SelectionBox.o: In function `SelectionBox::SelectionBox(double, double, double, double, double, double, double, double, double, double, double, double)': SelectionBox.cpp:(.text+0xfc): undefined reference to `Point::move(double, double, double)' src/lag-SelectionBox.o: In function `SelectionBox::movePoint(int, double, double, double)': SelectionBox.cpp:(.text+0x24c): undefined reference to `Point::move(double, double, double)' src/lag-SelectionBox.o: In function `SelectionBox::translatePoint(int, double, double, double)': SelectionBox.cpp:(.text+0x25c): undefined reference to `Point::translate(double, double, double)' collect2: error: ld returned 1 exit status Makefile:525: ошибка выполнения рецепта для цели «lag» make[1]: *** [lag] Ошибка 1 make[1]: выход из каталога «/home/meeeeee/lag-master» Makefile:375: ошибка выполнения рецепта для цели «all» make: *** [all] Ошибка 2 

The question arises: why the build fails? How can I fix all these errors?

    1 answer 1

    1. Does the current user have administrator privileges?
    2. If not, do run with sudo
    3. Is the lidarquadtree and libraries listed in the README list installed on the GitHub?
    • I tried to collect and with sudo, but there is no sense from this. lidarquadtree is installed and ./configure confirms this (checking for lidarquadtree ... yes) - Literator
    • The readme has a section on Ubuntu. If this happens, you have two options: 1) Install the binutils-gold package before compiling 2) After ./configure and before running make , apply the provided patch: patch Makefile < ubuntu-Makefile.patch - rvoid
    • binutils-gold - installed, but the patching does not work (has already tried once): patching file Makefile Hunk # 1 FAILED at 405. 1 out of 1 hunk FAILED - saving rejects to file Makefile.rej Plus wrote to the developers of the program asking clarify the installation steps on Ubuntu and they didn't even mention anything about this patch, so I didn’t give much attention to this. - Literator
    • What is in the Makefile.rej file? Tried to remove and generate new Makefiles and config.h? - rvoid
    • 2
      Describe what you added. Someone else will come across this same question. I was glad to help, even though my help was useless :) - rvoid