2013-04-04 48 views
7

回答這個問題How to compile/link Boost with clang++/libc++?國建立Boostclang++libc++,下面應該做的:用clang ++/libC++刪除Boost libstdC++依賴項?

./b2 clean 
./b2 toolset=clang cxxflags="-stdlib=libc++" linkflags="-stdlib=libc++" 

我測試了科學的Linux 6.4 x86_64的主機上上述技巧和它的作品「大多是」建立全提升1_53_0分配,clang++ 3.3svlibc++ 3.3svn。我主要說,因爲我真的很喜歡刪除所有libstdc++依賴。

儘管如此,以下內容:

  • libboost_graph
  • libboost_locale
  • libboost_regex

仍顯示libstdc++依賴關係(在ldd輸出使得它相當明顯)。我想知道一個很好的方法來消除這種情況,並會感激任何提示。

+0

你基本上是想靜態鏈接libstdC++嗎?或者是其他東西? – alrikai 2013-04-04 19:30:14

+3

在Linux上,您可能會鏈接到libstdC++以獲得低級libsupC++支持,但我不確定這一理論。有非GPL替代品,搜索libC++ abi或libcxxabi。 – 2013-04-04 20:08:35

+0

@alrikai,其實我想要做的是靜態鏈接libC++,這樣我就可以在運行較舊的Linux的系統上運行在C++ 11中實現的軟件,例如, RHEL 5.x,6.x. – user183394 2013-04-04 21:58:06

回答

-3

我發現如何去做。感謝@Howard Hinnant提及libc++abi。在RTFM http://libcxx.llvm.org/之後,構建完整的boost庫不受任何libstdc++依賴關係的影響是微不足道的。是的,我所要做的就是RTFM!

+12

好吧,我們很高興你找到了解決方案,但是這種「RTFM」的一般答案實際上並不能幫助那些需要更多幫助的人。你想至少指出正確的方向(具體的,不是一般的,鏈接,一節看看等)? – csotiriou 2013-09-28 09:09:54

+0

是的,無用的答案,-1 – paulm 2016-11-03 11:29:08