make: не могу найти -lthrift - PullRequest
       100

make: не могу найти -lthrift

1 голос
/ 25 января 2020

Сценарий: я компилирую GNuRadio (я делаю очень простую модификацию модуля GnuRadio qt gui) с помощью "sudo make install" содержимого "/ prefix / default / src / gnuradio / build". Когда я пытаюсь скомпилировать, я получаю эту ошибку.

Я думал, что я не установил Thrift, но у меня есть.

Есть предложения?

/usr/bin/ld: cannot find -lthrift
collect2: error: ld returned 1 exit status
make[2]: *** [gr-qtgui/lib/CMakeFiles/gnuradio-qtgui.dir/build.make:1182: gr-qtgui/lib/libgnuradio-qtgui-3.7.13.5.so.0.0.0] Error 1
make[1]: *** [CMakeFiles/Makefile2:12843: gr-qtgui/lib/CMakeFiles/gnuradio-qtgui.dir/all] Error 2
make: *** [Makefile:163: all] Error 2 ```

Ответы [ 2 ]

1 голос
/ 25 января 2020

Если вам не нужен ControlPort от gnuradio, вы можете попробовать перекомпилировать без него, поэтому thrift не потребуется. Go в каталог сборки gnuradio, удалите CMakeCache.txt и затем запустите cmake с параметром -DENABLE_CTRLPORT_THRIFT=OFF.

Если вам нужен ControlPort, добавьте полный вывод grep "^THRIFT" CMakeCache.txt (выполняется из каталога сборки) в ваш вопрос.

0 голосов
/ 26 января 2020

Ответ @Vasil действителен, но я хочу поделиться тем, как я решил проблему на случай, если другим людям понадобится библиотека для компиляции gnuradio. Я обнаружил, что нам нужна библиотека
libthrift-0.10.0. Так как он недоступен в репозитории Ubuntu, я установил здесь следующие пакеты (https://mirror.genesisadaptive.com/deepin/pool/main/t/thrift/):

  • libthrift-dev_0.10.0-1deepin_amd64
  • libthrift- c -glib0_0.10.0-1deepin_amd64
  • libthrift- c -glib-dev_0.10.0-1deepin_amd64
  • libthrift-0.10.0_0.10.0-1deepin_amd64
...