Я пытаюсь скомпилировать websocket ++, который по умолчанию компилируется как статический. Я думал, что общий вариант будет лучше, поэтому я сделал:
make SHARED-1
Я получаю различные результаты со следующей ошибкой (игнорируя те, которые, я думаю, вызваны следующей ошибкой):
/usr/bin/ld: cannot find -lboost_random
Я искал и искал и не могу найти кого-то еще, кто имел такую же проблему, не с websocket ++, но с использованием библиотеки случайного повышения.
В конце концов я узнал, как проверить свою версию с помощью:
apt-cache showpkg libboost-all-dev
Это утверждает, что у меня есть:
1.48.0.2 (/var/lib/apt/lists/mirror.aarnet.edu.au_pub_ubuntu_archive_dists_precise_universe_binary-amd64_Packages)
Кстати, я на Ubuntu 12.04.
Я проверил версию, потому что я видел комментарии к постам относительно 1.46 (который, я думаю, был тем, что поддерживал 11.10).
Если я сделаю:
ls /usr/lib/libboost_*.so
Я получил:
/usr/lib/libboost_date_time-mt.so /usr/lib/libboost_serialization-mt.so
/usr/lib/libboost_thread-mt.so /usr/lib/libboost_date_time.so
/usr/lib/libboost_serialization.so /usr/lib/libboost_thread.so
/usr/lib/libboost_program_options-mt.so /usr/lib/libboost_signals-mt.so
/usr/lib/libboost_wserialization-mt.so /usr/lib/libboost_program_options.so
/usr/lib/libboost_signals.so /usr/lib/libboost_wserialization.so
/usr/lib/libboost_regex-mt.so /usr/lib/libboost_system-mt.so
/usr/lib/libboost_regex.so /usr/lib/libboost_system.so
Очевидно, что библиотеки установлены, я просто не вижу boost_random.
Я подозреваю, что, возможно, случайный был удален из boost в стандартную c ++ lib? Я не был уверен, но я видел некоторые комментарии о том, что это произошло с другими областями. Проблема в том, что я бы подумал, что увижу некоторые посты где-нибудь в сети, если это так.
Должен отметить, что автор libwebsocket ++ заявляет, что 1.47 boost тестируется на osx, 1.46 тестируется на linux. Так что я подозреваю, что это проблема с версиями библиотек. Просто надеясь, что кто-то может дать некоторые рекомендации относительно того, что мне нужно исправить, чтобы исправить проблему.
Ура,
Странный. Я работаю 12.04, и в настоящее время я также использую boost :: random.
У меня намного больше установленных буст-библиотек, чем у вас. Оглядываясь назад на мой журнал dpkg, я вижу, что я установил libboost-dev
, Это установило 1.48.0.2 на моей машине. Попробуйте это и доложите.
$ ls /usr/lib/libboost_*.so
/usr/lib/libboost_chrono-mt.so /usr/lib/libboost_iostreams.so /usr/lib/libboost_math_tr1l-mt.so /usr/lib/libboost_prg_exec_monitor-mt.so /usr/lib/libboost_regex-mt.so /usr/lib/libboost_timer.so
/usr/lib/libboost_chrono.so /usr/lib/libboost_locale-mt.so /usr/lib/libboost_math_tr1l.so /usr/lib/libboost_prg_exec_monitor.so /usr/lib/libboost_regex.so /usr/lib/libboost_unit_test_framework-mt.so
/usr/lib/libboost_date_time-mt.so /usr/lib/libboost_locale.so /usr/lib/libboost_math_tr1-mt.so /usr/lib/libboost_program_options-mt.so /usr/lib/libboost_serialization-mt.so /usr/lib/libboost_unit_test_framework.so
/usr/lib/libboost_date_time.so /usr/lib/libboost_math_c99f-mt.so /usr/lib/libboost_math_tr1.so /usr/lib/libboost_program_options.so /usr/lib/libboost_serialization.so /usr/lib/libboost_wave-mt.so
/usr/lib/libboost_filesystem-mt.so /usr/lib/libboost_math_c99f.so /usr/lib/libboost_mpi-mt.so /usr/lib/libboost_python-mt-py27.so /usr/lib/libboost_signals-mt.so /usr/lib/libboost_wave.so
/usr/lib/libboost_filesystem.so /usr/lib/libboost_math_c99l-mt.so /usr/lib/libboost_mpi_python-mt-py27.so /usr/lib/libboost_python-mt-py32.so /usr/lib/libboost_signals.so /usr/lib/libboost_wserialization-mt.so
/usr/lib/libboost_graph-mt.so /usr/lib/libboost_math_c99l.so /usr/lib/libboost_mpi_python-mt-py32.so /usr/lib/libboost_python-py27.so /usr/lib/libboost_system-mt.so /usr/lib/libboost_wserialization.so
/usr/lib/libboost_graph_parallel-mt.so /usr/lib/libboost_math_c99-mt.so /usr/lib/libboost_mpi_python-py27.so /usr/lib/libboost_python-py32.so /usr/lib/libboost_system.so
/usr/lib/libboost_graph_parallel.so /usr/lib/libboost_math_c99.so /usr/lib/libboost_mpi_python-py32.so /usr/lib/libboost_python.so /usr/lib/libboost_thread-mt.so
/usr/lib/libboost_graph.so /usr/lib/libboost_math_tr1f-mt.so /usr/lib/libboost_mpi_python.so /usr/lib/libboost_random-mt.so /usr/lib/libboost_thread.so
/usr/lib/libboost_iostreams-mt.so /usr/lib/libboost_math_tr1f.so /usr/lib/libboost_mpi.so /usr/lib/libboost_random.so /usr/lib/libboost_timer-mt.so
Вы также можете установить его напрямую. например
$ apt-cache search boost random
libboost-random-dev - Boost Random Number Library (default version)
libboost-random1.46-dev - Boost Random Number Library
libboost-random1.46.1 - Boost Random Number Library
libboost-random1.48-dev - Boost Random Number Library
libboost-random1.48.0 - Boost Random Number Library
$sudo apt-get install libboost-random1.46-dev
или любую версию, которую вы хотите.
Других решений пока нет …