Я собираю программу, которая требует библиотеки boost-thread-mt. Я установил libboost-all-dev, используя, sudo apt-get install libboost-all-dev
но компилятор говорит, что он не может найти библиотеку boost-thread-mt. Эта библиотека в каком-то другом пакете? Пожалуйста, объясните мне, что мне нужно для этого установить.
8
libboost-thread-dev
установили?-mt
основном пакете Boost нет библиотек. Смотрите также этот нерешенный вопрос.Ответы:
-mt
Суффикс был удален. Установленные библиотеки Boost являются многопоточными.Вы можете скомпилировать вашу программу против
libboost-thread
. Либо изменив источник, чтобы он использовал non-mt
libs, либо сделав символические ссылкиlibboost_thread.a
→libboost_thread-mt.a
. То же самое, если вам нужны общие библиотеки.so
.источник
AC_CHECK_LIB
check-target-builds
похоже, предлагает те же функции autoconf для boost.build.Если ваш проект использует
CMake
, этот следующий переключатель в модуле FindBoost должен быть отключен:-DBoost_USE_MULTITHREADED=OFF
источник
Эта ссылка связана с этим вопросом.
Вы также можете попробовать скомпилировать boost из исходного кода, а не использовать версию apt-get.
Аргументы
--layout
,threading
иbuild-type
поможет.Итак, попробуйте эту команду для установки boost, после
bootstrap.sh --prefix=/path/of/yours
:Тогда вы получите все
-mt
библиотеки.источник