问题描述
我不清楚Boost.Thread 1.34.1库存在哪些链接选项。我在Ubuntu 8.04上,并且发现在链接同时编译和运行时使用boost_thread
或boost_thread-mt
时,但在这些链接或上面链接中的任何其他链接选项上都看不到任何文档。
有哪些Boost.Thread链接选项可用,它们是什么意思?
最佳方法
好…
首先有趣的是,名称中的-mt
修饰符表示该库对于多线程而言是可以的。这可能使我们相信boost_thread
(不带此修饰符)可能是multithread-unsafe …
但是真正的事情是(如在我自己的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
的软链接
次佳方法
有关boost库命名方案的详细参考,请参见:http://www.boost.org/doc/libs/release/more/getting_started/unix-variants.html#library-naming