2010-06-13 70 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