【问题标题】:Remove Boost libstdc++ dependency with clang++/libc++?使用 clang++/libc++ 删除 Boost libstdc++ 依赖项?
【发布时间】:2013-03-26 23:44:26
【问题描述】:

这个问题的答案How to compile/link Boost with clang++/libc++? 声明使用clang++libc++ 构建Boost,应该这样做:

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

我在一台 Scientific Linux 6.4 x86_64 主机上测试了上述技巧,它“主要”可以使用clang++ 3.3svlibc++ 3.3svn 构建完整的 Boost 1_53_0 发行版。我说的主要是因为我真的很想删除所有 libstdc++ 依赖项。

不过,以下内容:

  • libboost_graph
  • libboost_locale
  • libboost_regex

仍然显示 libstdc++ 依赖项(ldd 输出使其非常明显)。我想知道删除此类的好方法,并希望得到任何提示。

【问题讨论】:

  • 您基本上是在寻找静态链接 libstdc++ 吗?还是别的什么?
  • 在 Linux 上,您可能会链接到 libstdc++ 以获得低级别的 libsupc++ 支持,但我不确定这个理论。存在非 GPL 替代品,请搜索 libc++abi 或 libcxxabi。
  • @alrikai,实际上我想做的是静态链接 libc++,以便我可以在运行旧 Linux 的系统上运行用 C++11 实现的软件,例如RHEL 5.x、6.x.
  • @Howard Hinnant,感谢您的参与。我在 libc++ 网站上阅读了相关内容,但认为我可以跳过它。好的,我试试看。
  • 不久前,我在日常工作中稍作休息时仔细查看了boost_1_53_0/libs/regex/build。我看到一堆*.mak 文件。其中之一称为generic.mak,其余的名称与特定编译器有明确的关联。好的。我会稍微修改一下generic.mak,看看我能想出什么。

标签: c++ boost clang libstdc++ libc++


【解决方案1】:

我知道怎么做。感谢@Howard Hinnant 提到了libc++abi。在 RTFM http://libcxx.llvm.org/ 之后,构建没有任何 libstdc++ 依赖项的整个 boost 库是微不足道的。是的,我所要做的就是 RTFM!

【讨论】:

  • 好吧,我们很高兴您找到了解决方案,但“RTFM”的一般答案实际上并不能帮助那些比其他人需要更多帮助的人。您是否想至少指出正确的方向(具体的,而不是一般的,链接,要查看的部分等)?
  • 是的,没用的答案,-1
猜你喜欢
  • 2012-09-14
  • 1970-01-01
  • 2017-09-25
  • 2012-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-20
相关资源
最近更新 更多