Подтвердить что ты не робот

Boost.Thread Linking - boost_thread vs. boost_thread-mt

Мне не ясно, какие существуют варианты связывания для библиотеки Boost.Thread 1.34.1. Я на Ubuntu 8.04, и я обнаружил, что при использовании boost_thread или boost_thread-mt во время компоновки как компиляции, так и запуска, но я не вижу никакой документации по этим или любым другим ссылкам в вышеприведенной ссылке.

Какие доступны ссылки для Boost.Thread и что они означают?

4b9b3361

Ответ 1

Ну...

Первая забавная вещь, что модификатор -mt в имени указывает на то, что библиотека работает для многопоточности. Что может заставить нас поверить, что boost_thread (без этого модификатора) может быть многопоточным-небезопасным...

Но реальная вещь заключается в том, что (как видно на моем собственном ящике Ubuntu 10.04), boost_thread является мягкой ссылкой на boost_thread-mt, что означает, что два являются одним и тем же.

Если вы хотите его проверить, вы можете открыть консоль на своем ubuntu (сделать полноэкранный режим консоли, потому что имена длинны), а затем введите:

cd /usr/lib

чтобы перейти в каталог, где находятся библиотеки Boost. И затем:

ls -l ./libboost_thread*

Будет отображаться список всех файлов, начинающихся с libboost_thread, с дополнительной информацией. Результатом будет что-то вроде:

[...] ./libboost_thread.a
[...] ./libboost_thread-mt.a -> libboost_thread.a

Как вы можете видеть, libboost_thread.a является статической библиотекой, а libboost_thread-mt.a является мягкой ссылкой на libboost_thread.a