Boost:仅安装标头
Posted
技术标签:
【中文标题】Boost:仅安装标头【英文标题】:Boost: Install headers only 【发布时间】:2015-08-24 18:00:54 【问题描述】:如何以独立于平台的方式将所有 boost 标头输出到包含 boost 版本的路径,而不编译任何内容或安装任何已编译的库?
【问题讨论】:
你有什么问题? 将措辞改为明确的而非隐含的问题 我不明白您为什么“必须为每个库指定--without-<lib>
”。只是正常运行命令?也许您可以通过文档安装说明更清楚地了解您面临的问题。
如果我这样做,我将编译所有的 boost 库,这正是我想要避免的
会吗?我还没有尝试过,但我知道在我的设置中我明确命名了要使用--with-<lib>
构建的库。只是不写那些? (或者也许没有任何暗示--with-all
;这就是我们的意思吗?)
【参考方案1】:
为什么你认为你需要使用b2
来做到这一点?
如果您不想构建任何东西而只想复制标题,那么只需复制标题:
mkdir inc_dir
cp -R ./boost ./inc_dir/
如果您想要 inc_dir/boost-1.59.0
中的标题,请改为:
mkdir inc_dir/boost-1.59.0
cp -R ./boost ./inc_dir/boost-1.59.0/
如果您不想自己命名目录,请从 boost/version.hpp
标头中获取它:
ver=`awk '/define.*BOOST_LIB_VERSION/ print $3' boost/version.hpp | sed 's/"//g'`
mkdir inc_dir/boost_$ver_0/
cp -R ./boost ./inc_dir/boost_$ver_0/
但是现在这似乎是一个相当愚蠢的要求......真的是你需要经常做的事情,以至于提取版本需要自动化吗?您安装了多少个 Boost 版本,而不是从 boost_1_59_0.tar.bz2
之类的压缩包开始,这意味着您无论如何都需要知道版本?在以前的工作中,我曾经在多个操作系统上安装多个版本的 Boost,并且在开始该过程时从来没有遇到不知道我正在使用哪个版本的 Boost 的问题。
【讨论】:
编辑了问题以包含“版本”标准,这是我的错误。我想使用b2
,因为它知道增强版本,而不是自己提取它
“输出所有带有版本的标题”是什么意思?标题只是复制了,版本与它有什么关系?如果您希望它们位于包含版本的目录中,您可以随时使用mkdir inc_dir/boost-1.59.0; cp -R boost inc_dir/boost-1.59.0;
。
像boost_1_54_0/boost/...
这样区分版本的路径
好吧,你应该这么说的。上面的评论已经说明了如何做到这一点。
是的,用措辞来询问您真正想要做什么总是很有用的。答案已更新以自动查找版本。以上是关于Boost:仅安装标头的主要内容,如果未能解决你的问题,请参考以下文章