Sunday, June 16, 2013

インストールと互換性@Boost.Log 2.0

Installation and compatibility@@Boost.Log 2.0 の翻訳。

  • サポートされるコンパイラーとプラットフォーム
  • 構成とライブラリーのビルド

サポートされるコンパイラーとプラットフォーム

このライブラリーは適切に準拠したコンパイラーでビルドされ、利用されるべきである。このライブラリーは以下のプラットフォームで正しくビルドされ、テストされている。
  • Windows XP, Windows Vista, Windows 7. MSVC 8.0 SP1, MSVC 9.0 およびこれ以降。
  • Linux. GCC 4.5 およびこれ以降. これより古いバージョンでも動作するかもしれないが、テストされていない。
  • Linux. Intel C++ 13.1.0.146 Build 20130121。
  • Linux. Clang 3.2。
以下のコンパイラーとプラットフォームはサポートされておらず、このライブラリーのビルドに失敗するだろう。
  • C++11コンパイラーと非C++11標準ライブラリーの組み合わせ(例えば、ClangとGCC 4.2のlibstdc++)。C++11標準ライブラリーをC++11モードで使用すること。
  • MSVC 8.0(SP1未適用)およびこれより古いバージョン。
  • GCC 4.0およびこれより古いバージョン。
  • Borland C++ 5.5.1 (free version)。これより新しいバージョンでは動作するかもしれないし、しないかもしれない。
  • Windows 9x, ME, NT4およびこれより古いバージョンはサポートされない。
Boost.LogはBoostによってサポートされるすべてのハードウェアアーキテクチャーと互換性があるべきである。しかしながら、32bit x86アーキテクチャーにおいては、このライブラリーは最小でもi586のCPUで実行することを要求する。

MinGW、CygwinおよびVisual Studio Express Edition利用者のためのノート

これらのコンパイラーでこのライブラリーをビルドするためには、特別の準備が要求される。まず、MinGWとCygwinの場合には、最新バージョンのGCCがインストールされていることを確認する。このライブラリーはGCC3.xではコンパイルに失敗するだろう。

次に、このライブラリーの一部はメッセージコンパイラー(mc.exe)を要求する。これはMinGWやCygwin、一部のバージョンのMSVC Express Editionでは利用できない。基本的には、このライブラリーのビルドスクリプトは、メッセージコンパイラーがシステムに存在しているか否かを自動的に検出し、もし存在しないなら、このライブラリーのイベントログに関係した部分を無効にする。もしイベントログのサポートが必要で、メッセージコンパイラーがシステムに無いのであれば、この問題を解決するために3種類の方法がある。推奨される方法は、オリジナルのmc.exeを入手する事だ。このツールはWindows SDKから入手できる。これはMicrosoftのサイトから無償でダウンロードできる(たとえば、ここ)。またこのツールはVisual Studio 2010 Express Editionでは利用できる。コンパイルのとき、mc.exeはPATH環境変数のいずれかを通して利用できるべきである。

別の方法は、MinGWやCygwinとともに配布されているwindmc.exeの利用を試みることだ。これはオリジナルのmc.exeの類似物だ。これを行うためには、このチケットに記述されているように、Boost.Buildのファイル(特に、tools/build/v2/tools/mc.jam ファイル)に変更を加えなくてはならないだろう。その後で、このライブラリーをビルドするためにbjamにmc-compiler=windmcオプションを指定できるようになる。

万が一、何らかの理由でメッセージコンパイラーの検出に失敗する場合は、このライブラリーをビルドするときにBOOST_LOG_WITHOUT_EVENT_LOG構成マクロを定義する事によってイベントログバックエンドのサポートを明示的に無効にすることができる。これは、メッセージコンパイラーの必要性を取り除く。より構成オプションについてはこのセクションを参照する事。

Cygwin利用者のためのノート

Cygwinのサポートは非常に予備的である。Cygwinに含まれるデフォルトのGCC(本校執筆時点で4.5.3)はコンパイルエラーのためにこのライブラリーをビルドする事が出来ない。あなたはより新しいGCCをソースからビルドしなければならないだろう。それでも、いくつかのBoost.Logの機能は有効ではない。特に、ソケットベースのsyslogバックエンドは、Boost.ASIO(これはこの環境ではコンパイルされない)に基づいているためサポートされない。しかしながら、ネイティブのsyslogは適切にサポートされる。

No comments:

Post a Comment