【发布时间】: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.3sv 和libc++ 3.3svn 构建完整的 Boost 1_53_0 发行版。我说的主要是因为我真的很想删除所有 libstdc++ 依赖项。
不过,以下内容:
libboost_graphlibboost_localelibboost_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++