Boost.Thread Linking - boost_thread против boost_thread-mt - PullRequest
24 голосов
/ 13 июня 2010

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

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

Ответы [ 2 ]

35 голосов
/ 13 июня 2010

Ну ...

Первая забавная вещь заключается в том, что модификатор -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

8 голосов
/ 13 июня 2010

Подробные сведения о схеме именования библиотек Boost см. В http://www.boost.org/doc/libs/release/more/getting_started/unix-variants.html#library-naming

...