make не связывает математическую библиотеку при компиляции - PullRequest
0 голосов
/ 12 июня 2018

Я получаю следующую ошибку при компиляции xpdf с использованием make.Я попытался с помощью команды:

LIBS=-lm make

Однако, это не работает.Я знаю, что проблема в том, что компилятор c не может распознать математические символы в исходном коде, потому что математическая библиотека ему недоступна, но я не знаю, как это исправить.

[ 71%] Linking CXX executable pdftohtml 
    /usr/bin/ld: CMakeFiles/xpdf_objs.dir/Gfx.cc.o: undefined reference to symbol 'acos@@GLIBC_2.2.5'
    //usr/lib64/libm.so.6: error adding symbols: DSO missing from command line
    collect2: error: ld returned 1 exit status
    make[2]: *** [xpdf/CMakeFiles/pdftohtml.dir/build.make:219: xpdf/pdftohtml] Error 1
    make[1]: *** [CMakeFiles/Makefile2:428: xpdf/CMakeFiles/pdftohtml.dir/all] Error 2
    make: *** [Makefile:130: all] Error 2

У меня естьпоместите мои Makefile и makeLists.txt на pastebin для получения дополнительной информации

1 Ответ

0 голосов
/ 13 июня 2018

Я понял, что должен был использовать компилятор g ++ вместо gcc после прочтения man-страницы для gcc, которая гласила:

Обычный способ запустить GCC - запустить исполняемый файл gcc или машину-gcc при кросс-компиляции или machine-gcc-version для запуска определенной версии GCC.Когда вы компилируете программы на C ++, вы должны вместо этого вызывать GCC как g ++.

...