カテゴリー
C++

Windows 上に非cygwinの boost 開発環境を作る

ダウンロード

  1. Git for Windows
    git を何に使うのかというと後の手順でboostを入手するためである

      • Git-2.5.2.2-64-bit.exe をインストール
    操作 画像
    Nextボタン pic01
    GPLによる利用許諾を受け入れてNextボタン pic02
    インストール先のフォルダを選択。初期表示値は C:/Program%20Files/Git pic03
    インストール対象のコンポーネントを選択。ここでは Windows Explorer Integration を選択。 pic04
    メニューフォルダの場所を指定。初期表示値は Git pic05
    システム環境変数 PATH の取り扱いを選ぶ。 pic06
    行末のコードの取り扱いについて選択する。 pic07
    Git bash を起動させるターミナルの種類を選ぶ。MinTTY は縦横の比率を自由に選べるが、cmd.exe はそうではない。 pic08
    パフォーマンスの調整機能を使うかどうかを選択。 pic09
    エクスプローラが起動していると、それを閉じるように要求される。 pic10
    インストールが開始され、しばし待たされる。 pic11
    問題が発生しなければ、インストールの完了が通知される。リリース・ノートの保存先 pic12
  2. MinGW – Minimalist GNU for Windows
    • mingw-get-setup.exe をインストール。
    操作 画像
    サイトの「download」タブをクリックすると SourceForge へ飛ばされる。 MinGW_01.gif
    SourceForge から mingw-get-setup.exe という名前のファイルをダウンロードし実行する。本稿執筆時点でタイムスタンプが 2013-10-04 となっているものが最終リリース。バージョン符号は mingw-get-0.6.2-mingw32-beta-20131004-1 MinGW_02.gif
    コードサイニング証明書が着いていないので、セキュリティー警告の為のダイアログが表示される。これを受け入れて実行ボタンを押す。 MinGW_03.gif
    バージョンとライセンス条項を確認して、Install ボタンを押す。 MinGW_04.gif
    ダイアログの上部でインストール場所を選択することが出来る。この場所は後の作業で環境変数 PATH を更新するのに必要なのでメモを控えておく。初期表示値は C:\MinGW が設定されている。その他、GUIオプションの選択、ショートカットを作る/作らないの選択が訊ねられる。初期表示値のまま、Continue ボタンを押す。 MinGW_05.gif
    インストールが開始され、進捗表示の画面に切り替わる。Continu ボタンが有効化されるまでしばし待つ。 MinGW_06.gif
    完了したら Continu ボタンを押す。 MinGW_07.gif
    自動的に Package Installation Manager が起動するので、メニューから Installation – Update Ddatabase を選択する。 MinGW_08.gif
    データベースのアップデートが終わると、Colose ボタンが有効化する。Close automatically, when update is completed をチェックしておくと次の操作時にはダイアログを自動的に閉じることが出来る。 MinGW_09.gif
    左側パネル上で Basic Setup を選択し、続いて右側のパネルで mingw32-base 、 mingw32-gcc-g++ 、及び msys-base という3つのパッケージを選択。チェックボックスをクリックすると、メニューがポップアップするので Mark for Installation を選択する。 MinGW_10.gif
    同じような操作のやり方で、左側パネル上で MinGW Development Tookkit を選択し、続いて右側のパネルで msys-bison と msis-flex という2つのパッケージを選択。チェックボックスをクリックする。 MinGW_11.gif
    インストールするパッケージの選択が終わったら、メニューの Install – Apply Changes を選択する。 MinGW_12.gif
    続いて表示されるダイアログで、インストールパケージのリストを確認の上、Apply ボタンを押すと適用が開始される。 MinGW_13.gif
    適用が済むと、ダイアログが表示される。Close ボタンを押すとダイアログを閉じることが出来る。 MinGW_14.gif
    • 環境変数 PATH をセットアップ
    操作 画像
    コマンドプロンプトまたは Windows+R ファイル名を指定して実行から、sysdm.cpl を実行する。システムのプロパティというダイアログで詳細設定タブを選び、環境変数ボタンを押す。 MinGW_20.gif
    環境変数ダイアログにあるリストボックスで変数 Path を選び、編集ボタンを押す。 MinGW_21.gif
    システム変数の編集ダイアログにある変数値へ、MinGW のインストール場所+\bin にあたるディレクトリを追加する。今回はデフォルトの場所を選んだので、C:\MinGW\bin;C:\MinGW\msys\1.0\bin を追加している。 MinGW_22.gif
    • ワークプレース(開発の作業場所)をセットアップ
    操作 画像
    ファイル名を指定して実行(Windows+R)ダイアログボックスへ

    mkdir %userprofile%\MinGW_HOME

    と入力して作業場所用のフォルダを作成する。

    MinGW_30.gif
    ファイル名を指定して実行(Windows+R)ダイアログボックスへ

    notepad %userprofile%\MinGW_HOME\reset_mingw.bat

    と入力してMinGW開発用の環境初期化を行うためのシェルスクリプトを作成する。。

    MinGW_31.gif
    メモ帳が開いたら次のスクリプトを書き込んで保存する。

    set BOOST_HOME=C:\Boost
    set CPLUS_INCLUDE_PATH=%BOOST_HOME%\include\boost-1_59
    set LIBRARY_PATH=%BOOST_HOME%\lib
    set PATH=%PATH%;C:\Program Files\Git\bin
    %COMSPEC% /E:ON /V:ON
    
    MinGW_32.gif
    デスクトップ上などでショートカットを作成する。ショートカットの作成ウイザードで、「項目の場所を入力してください」いうボックスへ

    %userprofile%\MinGW_HOME\reset_mingw.bat

    と入力して次へボタンを押す。

    MinGW_33.gif
    続いて、「ショートカットの名前を入力してください」いうボックスへ “MinGW 開発”と入力して次へボタンを押す。 MinGW_34.gif
  3. Boost 環境のインストール
    • 前のセクションで作製した”MinGW 開発”というショートカットを開いてコマンドプロンプトを表示
    • boost を入手
      git clone --recursive https://github.com/boostorg/boost.git boost
      
    • git clone が完了したら、boost サブディレクトリへ移動<
      cd boost
      
    • boost をビルド(マシンがパワー不足だと1時間くらい掛かる。メモリ不足でスラッシングしている場合は -j オプションに指定した並列度を下げると良い。)
      bootstrap.bat gcc
      b2.exe install toolset=gcc link=static,shared threading=multi variant=debug,release runtime-link=shared -j 8
      
    • 上記の結果、C:\boost 配下のサブ・ディレクトリにヘッダファイルのコピーが作られ、ビルドされた *.a、および *.dll ファイルが生成される。

参考にさせて頂いたサイト:

カテゴリー
C++ PHP

Windows 用 PHP 拡張モジュールコンパイル時のエラー

1>—— ビルド開始: プロジェクト:php_xxxxx, 構成:Release Win32 ——
1> php_xxxxx.cpp
1>C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xkeycheck.h(199): warning C4005: ‘inline’ : マクロが再定義されました。
1> C:\php-sdk\phpdev\vc11\x86\php-5.5.32-src\Zend/zend_config.w32.h(74) : ‘inline’ の前の定義を確認してください
1>C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\xkeycheck.h(242): fatal error C1189: #error : The C++ Standard Library forbids macroizing keywords. Enable warning C4005 to find the forbidden macro.

ビルドに使用した環境:
Microsoft(R) C/C++ Optimizing Compiler Version 17.00.61030 for x86
(Visual Studio 2012 Update 5)

上記障害、プリプロセッサ指令に下記のマクロを添えることにより解決した:
ZEND_WIN32_FORCE_INLINE