1

SVNリポジトリ(トランク、rev 601)からboost.logをビルドし、実行可能ファイルに含めようとしています。libはVS2008から使用できますが、bjamでは使用できません。

他のブーストライブラリと同じようにboost.logライブラリのエイリアスを作成しようとしましたが、「'/ boost/log'という名前のファイルまたはターゲットが見つかりません」というエラーが発生します。

Boostはソースからビルドされます(以下のコマンド)。v1.45とv1.46.1で同じ問題が発生します

Jamfile.jam(スニペット):

alias libboostpo    : /boost//program_options   : <link>static <threading>multi ;
alias libboostfs    : /boost//filesystem        : <link>static <threading>multi ; 
alias libboostlog    : /boost//log              : <link>static <threading>multi ; 

alias libfoundation : /path-foundation//foundation : <link>static <threading>multi ;
alias libtestcommon : /path-testcommon//testcommon : <link>static <threading>multi ;

exe foundationtest
    : libfoundation libtestcommon
      libboostpo libboostfs
      libboostlog 
      libgtest_win libggmock_win 
      [ glob-tree *.cpp *.rc ]
    : <toolset>msvc
    ;

ブーストを構築するために使用されるコマンドは次のとおりです。

bjam install variant=debug,release link=static,shared -j8 --prefix=%OutputPath% -s ZLIB_SOURCE=%PathToCOTS%\zlib --without-python --without-mpi --without-wave --without-test --without-graph --without-math --toolset=msvc >> %logFile%
4

1 に答える 1

3

Boost Log ライブラリは、まだ公式のブースト ライブラリではありません。(レビュー プロセスがどの程度進んでいるかはわかりませんが、Boost のsvn トランクには表示されません。) したがって、提供されている boost.jam ファイル (現在のトランク バージョン)に含まれていないことは驚くべきことではありません。

ただし、boost.jam は、実際に提供されているライブラリよりも少し遅れている傾向があるため、間違っている可能性があります。私はログ ライブラリに詳しくありませんが、これを boost.jam ファイルに追加したい場合は、ほとんどの場合、次の行 (または同様のもの) をライブラリのリストに追加する必要があります。

    lib log
        : filesystem
          system
          date_time
          thread
          regex
        :
        :
        : <link>shared:<define>BOOST_LOG_DYN_LINK ;

ライブラリのリストは、boost_std ルールのファイルの約 3 分の 2 です。(見逃すことはできません。そこには他に 25 のライブラリが定義されています。)これは、ログ ライブラリが残りのブースト ライブラリと同じ命名規則を使用している場合にのみ機能します。

もう 1 つのオプションは、独自の lib ルールを作成し、そのバージョンを自分で指定することです。ざっくりだろうけど

lib libboostlog
    : /boost//headers
      /boost//filesystem
      /boost//system
      /boost//date_time
      /boost//thread
      /boost//regex
    : <name>boost_log
      <link>static
      <threading>multi ;

( boost logのインストール手順から取得した依存関係のリスト。)

于 2011-05-31T16:14:17.727 に答える