Skip to content

for_windows

Ryuichiro KANAI edited this page Sep 24, 2016 · 8 revisions

OpenTsiolkovskiy for Windows

MSYS2をインストール

http://msys2.github.io/

で msys2-x86_64-20160205.exe (または似たような名前) のほうを押してダウンロードしてインストールします。

インストール後は "MinGW-w64 Win64 Shell" のなかで作業します。Msys2は3つのシェルがありますが、インストールしてすぐ出てくるのは"Msys2 Shell"であり、間違ってもこれを使ってはいけません。 インストール完了時にウインドウが開きます。スタートメニューにも入ります。

インストールできたらとりあえずアップデートします。

$ update-core

(追記: pacmanのバージョンがpacman 5.0.1.6403以降、あるいは5.0.1-1以降がインストールされている場合は代わりに $ pacman -Syuu でアップデートします。詳しくはこちらのリンクを参照(MSYS2における正しいパッケージの更新方法)

アップデートが終ったら閉じるボタンでウインドウを閉じます。残りのパッケージのアップデートをします。

$ pacman -Su

そのあと必要なパッケージのインストール。

$ pacman -S git
$ pacman -S gcc
$ pacman -S make
$ pacman -S mingw64/mingw-w64-x86_64-boost

GCCへのパッチあて

なんと面倒なことにこのmingw64のGCC(すくなくとも4.9.2)にはバグがあり、手動でパッチが必要です。 GCCのバージョン5.3.0(2016/05/05現在)ではこのパッチ当ては必要ありません。

C:\msys64\usr\lib\gcc\x86_64-pc-msys\4.9.2\include\c++\x86_64-pc-msys\bits\c++config.h

ファイルで、中ほどの

/* #undef _GLIBCXX_USE_C99 */

の行を

#define _GLIBCXX_USE_C99 1

に変更して保存してください。

ソースコードのClone

$ git clone https://github.com/istellartech/OpenTsiolkovsky

※ただしこの方法はReadonlyです。

コンパイル

$ cd OpenTsiolkovsky
$ make

でコンパイルできます。色々エラーはきますがたぶんできます。

$ cd bin
$ ./OpenTsiolkovsky.exe

で実行。

ここのファイルの場所

通常は、C:/msys64/home/(自分のユーザー名) 以下に生成されます。 現在のディレクトリをWindowsのパスで知りたいときは、 $ pwd -W とすると良いようです。

コマンドプロンプトで実行

MinGW64でコンパイルしたものはそのままではMsys2(MinGW64)上でしか動きませんが、下記DLLを.exeファイルと同じディレクトリに入れるとダブルクリックやコマンドプロンプト(cmd.exe)などでも動きます。

  • libwinpthread-1.dll
  • libgcc_s_seh-1.dll
  • libstdc++-6.dll

これは通常のインストールでは C:\msys64\mingw64\bin の中にあります。 Windowsバイナリを配布する際はこれらDLLを同梱すると良いです。

(0916追記: 上記以外のDLLを要求されることがあります。 C:\msys64\mingw64\bin と C:\msys64\usr\bin を探せば揃うはずです。)