Как избежать этих ошибок компиляции?

Я пытаюсь скомпилировать плагин для моего игрового сервера (точнее это: нажмите). Итак, когда я пытаюсь скомпилировать плагин в моей Linux-виртуальной машине (которая использует centos 7+) с помощью командной строки make, я получаю следующие ошибки:

Compiling plugin..
Compiling plugin SDK..
Linking (dynamic)..
/usr/bin/ld: cannot find -lmysqlclient_r
/usr/bin/ld: skipping incompatible //usr/local/lib/libboost_thread.a when searching for -lboost_thread
/usr/bin/ld: cannot find -lboost_thread
/usr/bin/ld: skipping incompatible //usr/local/lib/libboost_chrono.a when searching for -lboost_chrono
/usr/bin/ld: cannot find -lboost_chrono
/usr/bin/ld: skipping incompatible //usr/local/lib/libboost_date_time.a when searching for -lboost_date_time
/usr/bin/ld: cannot find -lboost_date_time
/usr/bin/ld: skipping incompatible //usr/local/lib/libboost_system.a when searching for -lboost_system
/usr/bin/ld: cannot find -lboost_system
/usr/bin/ld: skipping incompatible //usr/local/lib/libboost_atomic.a when searching for -lboost_atomic
/usr/bin/ld: cannot find -lboost_atomic
collect2: error: ld returned 1 exit status
make: *** [dynamic_link] Error 1

Мой вопрос, как избежать этих ошибок? Важное примечание: учебник по компиляции этого плагина (на главной странице github для этого плагина) работает для более новых версий этого плагина, но мне нужна R37. Плагин пишется на C, и внутри него есть make-файл. Спасибо.

1 ответ

Makefile использует -m32 опция компиляции по какой-то причине вызывает создание 32-битного исполняемого файла. Так что для этого исполняемого файла потребуются 32-битные библиотеки. Так что вы должны либо удалить -m32 опция или установить необходимые 32-битные зависимости.

Установите libboost, который идет с дистрибутивом. Все, что у вас есть в /usr/local/lib плохо.

Другие вопросы по тегам