2012-09-04 17 views
2

Я пытаюсь скомпилировать websocket ++, который по умолчанию компилируется как статический. Я думал, что общий вариант будет лучше, так что я сделал:Где я могу найти libboost_random?

make SHARED-1 

я получаю различные выходы со следующей ошибкой (не обращая внимания на те, которые я думаю, вызваны из-за ошибки):

/usr/bin/ld: cannot find -lboost_random 

Я искал и искал и не могу найти никого другого, у кого была такая же проблема, а не с помощью websocket ++, но с использованием случайной библиотеки boost.

в конце концов, я узнал, как проверить свою версию с помощью:

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) 

Btw, я на 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. Поэтому я подозреваю, что это проблема с версиями с libs. Просто надеюсь, что кто-то может дать некоторые рекомендации относительно того, что мне нужно исправить, чтобы исправить проблему.

Cheers,

ответ

2

Strange. Я запускаю 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 

или любую другую версию, которую вы хотите.

+0

Хм ... установлен 45,2 МБ библиотек, но нет libboost_random.so или libboost_random-mt.so. У меня есть новые библиотеки, просто не случайные. Очень странно ... Пропустил последний комментарий о том, как установить, сейчас я попробую вручную. – Metalskin

+0

Очень странно, я попробовал libboost-random1.48.0, и он сказал, что он его установил. Но это не в/usr/lib. whereis не находит его. Он сказал, что он настраивает libboost-random1.48.0 (1.48.0-3), также не говорит, где. Нашел, и я думаю, что нашел. Это в/usr/lib в конце концов, но это называется libboost_random.so.1.48.0. Моя маска при выполнении ls была libboost _ *, поэтому я не мог ее видеть. Должен ли я переименовать его или сделать символическую ссылку? Кажется, бесполезно, как без изменения Makefile (чего я бы предпочел избежать). – Metalskin

+0

Я сделал '$ dpkg -l | grep boost', и есть 'libboost1.48-all-dev' и' libboost1.48-dev'. Попробуйте «все» версию. –

Смежные вопросы