質問: cygwinでminisatを使ってみたいです。 http://web.cecs.pdx.edu/~hook/logicw11/Assignments/MinisatOnWindows.html のページを見て からMiniSat_v1.14_cygwinをダウンロードしました。 /bin/minisat.exeにリネームしminisat.exeをダブルクリックしてみましたが アプリケーションエラー アプリケーションを正しく起動できませんでした。(0xc000007b)。 [OK]をクリックしてアプリケーションを閉じてください。 というエラーダイアログが出てしまいます。 どうすればminisatを使えるようになるでしょうか? OSはwindows10 pro 64bitです。 cygwinはsetup version 2.905(64bit)というのでインストールしました。
回答: 当該 `MiniSat_v1.14_cygwin` ファイルなのですが ``` $ file MiniSat_v1.14_cygwin MiniSat_v1.14_cygwin: PE32 executable (console) Intel 80386, for MS Windows ``` となっており PE32 つまり cygwin 32bit 版でビルドされています。よって cygwin 64bit 版ではこれを動かすことはできません。 cygwin 64bit 版の EXE は PE32+ でなければならないのです。 ``` $ file /bin/gcc.exe /bin/gcc.exe: PE32+ executable (console) x86-64 (stripped to external PDB), for MS Windows ``` んで トップページによると cygwin 32bit 版はアドレス空間が狭すぎて大規模プログラムが実行できないからこれが絶対に必要な場合以外は使わないでねとあります。何が何でも MiniSat を動かしたい、他の cygwin プログラムは動かなくてよい、という状況であるなら cygwin 32bit 版をインストールしてみてください。 あるいは minisat の google groups で cygwin 64bit 版をビルドしてとお願いするか、自分でビルドするか、でしょう。