如何以平台无关的方式将所有boost标头输出到包含boost版本的路径,而不编译任何内容或安装任何已编译的库?
答案 0 :(得分:4)
为什么您认为需要使用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
这样的tarball开始,这意味着你还需要知道版本?我曾经在以前的工作中跨多个操作系统安装多个版本的Boost,并且在启动过程时从未遇到过不知道我正在使用哪个版本的Boost的问题。