我只想安装库的mpl和预处理器部分但是如果我使用这个命令,它会尝试构建并安装所有这些:
./bootstrap.sh --with-libraries= --prefix=<my lib path>
我看到它正在尝试,因为它正在执行编译器。使用 ./ b2 -n 也会显示正在执行的命令。
有谁知道发生了什么? - with-libraries = 的默认值应该全部来自帮助:
--with-libraries=list build only a particular set of libraries,
describing using either a comma-separated list of
library names or "all"
[all]
--without-libraries=list build all libraries except the ones listed []
Empty不应该默认为all,Empty应该是空的。未指定 - with-libraries = 应默认为all。
此外, - without-libraries = all 也不起作用。考虑到这个库已经存在了很长时间,这有点令人失望。你会认为这些人会检查这样一个简单的边界情况。 :(
答案 0 :(得分:1)
除了查看所有库然后在--without-libraries = flag之后全部指定它们之外,似乎没有任何其他方法。但是,看起来它实际上没有做任何事情,这意味着,我可以将头文件夹复制到我想要的包含目录。
答案 1 :(得分:0)
根据我升级boost时的经验,运行一些测试以查看boost是否与您的系统/编译器兼容。在[我们]的情况下,我们需要filesystem
和system
,所以这是我们在 boost 1_51_0 的情况下使用的方法。我希望它会有所帮助。
注意:我们只需要可以使用共享库(.so)编译的静态库(.a)。这就是为什么我们添加cxxflags=-fPIC
,然后我们将.a文件复制到lib64
目录。
tar xf boost_1_51_0.tar.gz
rm boost_1_51_0.tar.gz
./bootstrap.sh --with-libraries=filesystem,system --exec-prefix=$(pwd)
./b2 cxxflags=-fPIC
mkdir lib64
cp $(find . -name '*.a' -print | grep -v stage | grep release ) lib64
cd lib64
# Now you can delete any libraries you don't need.
另请注意,您可以致电./bootstrap.sh --show-libraries
查看所有可用的库。