当前位置:  开发笔记 > 编程语言 > 正文

如何使用C++ 0x支持构建Boost?

如何解决《如何使用C++0x支持构建Boost?》经验,为你挑选了3个好方法。

我不知道如何用C++ 0x编译器构建Boost.必须给bjam哪个选项?是否应修改user.config文件?有人可以帮助我吗?

最好的,维森特



1> Vicente Bote..:

我找到了答案.我正在等待'std'这样的功能,并按如下方式调用:

bjam std=0x

但是目前我们需要使用低级变量cxxflags并添加特定的编译器标志.例如对于gcc,我们可以做到

bjam toolset=gcc cxxflags=-std=gnu++0x

其他编译器需要不同的设置.

等待新的Boost.Build功能,您还可以按如下方式定义自己的工具集:添加user.config或site.config文件

using gcc
   : std0x
   : "/usr/bin/g++" # your path to the C++0x compiler
   : -std=gnu++0x
   ;

现在打电话给

bjam toolset=gcc-std0x


对于较新版本的boost,它是./b2 toolset = gcc cxxflags = -std = gnu ++ 0x.对于较新版本的gcc,请使用-std = gnu ++ 11

2> Gabriel..:

使用这样的东西:

./bootstrap.sh --with-toolset=gcc --prefix=/usr/local

./b2 -j12 toolset=gcc variant=release link=shared threading=multi address-model=64 cxxflags=-std=c++11 install 

-j12用于并行(12个线程)构建-std=c++11用于更好的兼容性和 -std=gnu++11gnu扩展(仅适用于gcc)

如果boost :: mpi没有构建(参见上面命令的输出) - >编辑user-config.jam

如果您只想构建某些组件:添加:

--with-libraries=system,thread,serialization

例如

这是来自我的travis(adjust )框架的改编脚本ROOT_PATH:

BOOST_DOWNLOAD_URL="http://sourceforge.net/projects/boost/files/boost/1.58.0/boost_1_58_0.tar.bz2/download"
BOOST_BUILD=${ROOT_PATH}/boostBuild
mkdir -p ${BOOST_BUILD}
wget --no-verbose --output-document="${ROOT_PATH}/boost.tar.bz2" "$BOOST_DOWNLOAD_URL"
cd ${BOOST_BUILD}
tar jxf "${ROOT_PATH}/boost.tar.bz2" --strip-components=1 -C "${BOOST_BUILD}"
./bootstrap.sh --with-toolset=gcc --with-libraries=system,thread,serialization,filesystem,chrono,atomic,date_time
sudo ./b2 -j12 toolset=gcc threading=multi link=shared release install

安装到/usr/local.



3> Sean..:

要使用clang进行编译,请使用cxxflagslinkflags:

./b2 \
    ...
    cxxflags="-std=c++0x -stdlib=libc++" \
    linkflags="-stdlib=libc++" \
    ...

在调试时传递一个-vto cxxflags也很有帮助.

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有