2010-06-13 75 views
24

我不清楚Boost.Thread 1.34.1库有哪些链接选项。我在Ubuntu 8.04上,我发现在链接编译和运行时使用boost_threadboost_thread-mt,但在上面的链接中没有看到关于这些或任何其他链接选项的任何文档。Boost.Thread链接 - boost_thread与boost_thread-mt

什么Boost.Thread链接选项可用,它们是什么意思?

+0

你为什么要修建1.34.1而不是1.43.1? – Puppy 2010-06-13 10:19:15

+0

@DeadMG:因为这是Ubuntu 8.04所带来的,所以我没有编译和安装更新版本的选项。 – 2010-06-13 10:34:33

回答

33

嗯......

第一个有趣的事情是,-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