42

C++0x コンパイラで Boost をビルドする方法がわかりません。bjam に与える必要があるオプションはどれですか? user.config ファイルを変更する必要がありますか?誰か助けてくれますか?

ベスト、ビセンテ

4

5 に答える 5

44

私は答えを見つけました。私は「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
   : <cxxflags>-std=gnu++0x
   ;

そして今、

bjam toolset=gcc-std0x
于 2010-05-24T08:50:02.293 に答える
12

次のようなものを使用します。

./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 は、-std=c++11互換性を高めるための並列 (12 スレッド) ビルドの使用と -std=gnu++11、gnu 拡張 (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ます。

于 2013-09-24T09:21:13.323 に答える
11

clang を使用してコンパイルするには、cxxflagsおよびを使用しlinkflagsます。

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

-vto を渡すと、cxxflagsデバッグ時にも役立ちます。

于 2012-04-21T17:27:47.957 に答える
3

clangを使用してBoostをコンパイルするための記事に出くわしました:http://blog.llvm.org/2010/05/clang-builds-boost.html。Boost.Jamを使用してBoostをコンパイルするためにそこで提案された変更を、お気に入りのC++0xコンパイラに適合させることができる場合があります。

于 2010-05-24T07:57:33.993 に答える
3

また、次のように 1 つのファイルのコンパイル フラグを変更することもできます。

exe test : test.cpp : <cxxflags>-std=gnu++0x ;

于 2011-01-29T17:33:34.640 に答える