Msys2+Pleiadesでc++の開発環境をつくる

1) MSYS2コアのダウンロードとインストール

http://sourceforge.net/projects/msys2/files/Base/x86_64/
msys2-base-x86_64-20140704.tar.xz をダウンロードして解凍
20140704より新しい最新版があれば、そちらを選ぶこと。

2) 初回起動と再起動
mingw64_shell.bat を実行。
初回起動時は、そのまま終了した後、再度mingw64_shell.bat を実行。

3) フォントとLocale、文字コードの設定
MSYS2端末窓の左上、Mのアイコンを右クリックして「Options...」を選択
メニュー窓左のTextを選び、Fontの右の「Select...」ボタンから好みのフォントを選択。
「MSゴシック」サイズ10-pointがおすすめ。
Localeには ja_JP、Character setには SJIS(Japanese)か UTF-8(Unicode) を選択
(Windowsのコマンドプロンプトとの互換性重視ならSJIS、Linux,Ubuntu等に近い環境を望むならUTF-8)

4) システムをアップデート
コマンド入力状態から、
pacman -Syu
と入力して、内部システムをアップデート。
もしエラーが出たらMSYS2を再起動(終了して、mingw64_shell.bat を実行)

5) 開発に必要なパッケージのインストール
以下のコマンドを入力
pacman -S base-devel
pacman -S nano p7zip
pacman -S subversion
------------------------------------------
pacman -S mingw-w64-x86_64
(すべてをダウロードする必要はない.単体でgccとgfortranをインストールしてもよい。)
pacman -S mingw-w64-x86_64-gcc mingw-w64-x86_64-gcc-fortran
--------------------------------------------
pacman -S mingw-w64-x86_64-cmake
pacman -S mingw-w64-x86_64-ruby
pacman -S mingw-w64-x86_64-boost
pacman -S mingw-w64-x86_64-doxygen
pacman -S mingw-w64-x86_64-lapack
pacman -S mingw-w64-x86_64-OpenBLAS-git
pacman -S mingw-w64-x86_64-gdb

上記ファイルのサーバーは転送速度が遅いのでダウンロード途中でエラーとなることがある。
そのときは以下の対処をする。
(a)再ダウンロード
 [D:\msys64\var\cache\pacman\pkg]フォルダーの.partファイルを削除し,pacmanコマンドを再入力する。
(b)ftpサーバーから必要なファイルをftpでダウロードした後,pacmanコマンドを再入力する。
 ftpサーバーのURLはエラーメッセージの中に記載されている。

6) cpplapackをインストールする。
http://sourceforge.jp/projects/sfnet_cpplapack/releases/
ここから cpplapack-2014.02.08-1.tar.gz をダウンロード。
MSYS2のフォルダ内、mingw64\includeの中にcpplapackフォルダを作成。
cpplapack-2014.02.08-1.tar.gz を解凍し、includeフォルダ内の cpplapack.h 他、多数のフォルダを、さきほど作成したcpplapackフォルダ内へコピー。
(MSYS2内のファイルを自分で変えるのがイヤな場合は、複素固有値解析プログラムのソースが存在するフォルダにcpplapackフォルダをつくり、そこへコピーしても良い)

7) cmakeを使ったビルド
MSYS2を起動し、
ビルド構成を指定したファイル CMakeLists.txt を用意。
以下のコマンドを順に実行。buildフォルダ内にc_eigen64.exeが作成される。
mkdir build
cd build
cmake -G "MSYS Makefiles" ..
make
(詳細はこちら)

ここまでの段階でコマンドラインでプログラムのコンパイル・リンク・実行ができる。

8) 日常のMSYS2アップデート
コマンド入力状態から、
pacman -Syu
と入力して、内部システムをアップデート。 4)と同様。

9) Pleiades(Eclipse統合開発環境+日本語プラグイン) のダウンロード
 Pleiadesのc++ 64bit Full Versionをインストールすr。

http://mergedoc.sourceforge.jp/
http://mergedoc.sourceforge.jp/pleiades_distros4.4.html
ここから、C/C++ Full Edition 64bit をダウンロード。
pleiades-e4.4-cpp-jre_20130625.zipをダウンロードし,解凍。

10) Pleiades内のMinGWを全削除
pleiades-e4.4-cpp-jre_20130625\pleiades\eclipse\mingw内のフォルダを全削除

12) MSYS2のMinGWをコピー
手順 1)~5)で作成した、
msys2-base-x86_64-20140704\msys64\mingw64 の中身を、
手順 10) で削除した
pleiades-e4.4-cpp-jre_20130625\pleiades\eclipse\mingwの中へ全コピー。

13) 初回起動
pleiades-e4.4-cpp-32bit-jre_20130625\pleiades\eclipse\eclipse.exe を実行。
ファイル(F) → 終了(X) で一旦終了、再度
pleiades-e4.4-cpp-32bit-jre_20130625\pleiades\eclipse\eclipse.exe を実行。


14) C++プロジェクト作成
ファイル(F) → 新規(N) → C++プロジェクト
プロジェクト名(P): に、適当な名前(ここではeigenとする)
プロジェクト・タイプ: に、 「実行可能」「空のプロジェクト」、
ツールチェーン: に、 「MinGW GCC」
完了(F)ボタン


15)例題のコンパイルと実行

複素固有値解析ソースとcpplapackの用意

eigen.cppのソース内に、複素固有値解析のソース main2.cpp を全コピーして置換

pleiades-e4.4-cpp-jre_20130625\pleiades\workspace\eigen\src\cpplapack
内に、手順6)のcpplapack.h他の、cpplapackインクルードファイル群をコピー

メイン左カラムの「プロジェクト・エクスプローラー」から eigen を右クリックして 「リフレッシュ(F)」


16) ビルド環境の設定
メイン左カラムの「プロジェクト・エクスプローラー」から eigen を右クリックしてプロパティ

「eigenのプロパティー」ウィンドウ が出たら、
左カラムの \C/C++ビルド\設定 (もしくはSettings)をクリック、
中央カラムの\MinGW C++ Linker\その他 (もしくはMiscellaneous) をクリックし、リンカー・フラグに「-static」と入力
参照画像)

中央カラムの\MinGW C++ Linker\Libraries をクリックし
ライブラリー(-l) の横の「追加」ボタンを押す。
上から
lapack
blas
gfortran
winpthread
quadmath
の順で追加。
右下の「適用(A)」「OK」ボタンを順に押して、「eigenのプロパティー」ウィンドウを閉じる
参照画像)


17) ビルドと実行
プロジェクト(P) → すべてビルド(B)でビルド

実行(R) → 実行構成(N)...
左のカラムから「C/C++ Application」をダブルクリックし、
C/C++アプリケーション: が Debug\eigen.exe、
プロジェクト(P) がeigen になっていることを確認し、
実行(R)ボタンを押す。

18) 単体実行ファイルの確認
pleiades-e4.4-cpp-jre_20130625\pleiades\workspace\eigen\Debug\eigen.exe
をダブルクリックし、exeファイル単体での起動が可能であることを確認。

2014/09/03