Vic*_*iba 42
我找到了答案.我正在等待'std'这样的功能,并按如下方式调用:
bjam std=0x
Run Code Online (Sandbox Code Playgroud)
但是目前我们需要使用低级变量cxxflags并添加特定的编译器标志.例如对于gcc,我们可以做到
bjam toolset=gcc cxxflags=-std=gnu++0x
Run Code Online (Sandbox Code Playgroud)
其他编译器需要不同的设置.
等待新的Boost.Build功能,您还可以按如下方式定义自己的工具集:添加user.config或site.config文件
using gcc
: std0x
: "/usr/bin/g++" # your path to the C++0x compiler
: <cxxflags>-std=gnu++0x
;
Run Code Online (Sandbox Code Playgroud)
现在打电话给
bjam toolset=gcc-std0x
Run Code Online (Sandbox Code Playgroud)
Gab*_*iel 10
使用这样的东西:
./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
Run Code Online (Sandbox Code Playgroud)
-j12用于并行(12个线程)构建-std=c++11
用于更好的兼容性和 -std=gnu++11
gnu扩展(仅适用于gcc)
如果boost :: mpi没有构建(参见上面命令的输出) - >编辑user-config.jam
如果您只想构建某些组件:添加:
--with-libraries=system,thread,serialization
Run Code Online (Sandbox Code Playgroud)
例如
这是来自我的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
Run Code Online (Sandbox Code Playgroud)
安装到/usr/local
.
要使用clang进行编译,请使用cxxflags
和linkflags
:
./b2 \
...
cxxflags="-std=c++0x -stdlib=libc++" \
linkflags="-stdlib=libc++" \
...
Run Code Online (Sandbox Code Playgroud)
在调试时传递一个-v
to cxxflags
也很有帮助.
归档时间: |
|
查看次数: |
24883 次 |
最近记录: |