やねうら王2016Mid、Macでビルド出来ましたので手順を書いておきます。…が、よくわかってないので間違ったことを書いている可能性があります。お気づきの点があれば、コメント欄でお願いします。
ターミナルから。
1 2 |
$ g++ clang: error: no input files |
clangが起動した。Command Line Tool(CLT)がインストールされていないのが原因らしい。
AppStoreからXcodeをインストールして、Xcodeを起動するとLicense Agreementが出てくるからAgree押す。
メニューの「Xcode」→「Open Developer Tool」→「More Developer Tools…」を選択。
https://developer.apple.com/download/more/?name=for%20Xcode
から
Command Line Tools (OS X 10.11) for Xcode 8 beta
というのが最新っぽいのでそれをダウンロードしてインストール。
1 2 |
$ g++ clang: error: no input files |
clangが起動するではないか!ヽ(Д´)ノ
MacPorts入れる。
https://www.macports.org/
https://www.macports.org/install.php
の「OS X 10.11 El Capitan」と書いてあるリンクをクリックして「MacPorts-2.3.4-10.11-ElCapitan.pkg」をインストール。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
.bash_profileを反映させる。 $ source ~/.bash_profile 更新確認する。 $ sudo port selfupdate macportsでインストールできるgcc/g++のバージョンの選択肢を確認 $ port search gcc ---------------省略--------------- gcc5 @5.4.0 (lang) The GNU compiler collection gcc6 @6.1.0 (lang) The GNU compiler collection ---------------省略--------------- 今回はgcc-6をインストール。 $ sudo port install gcc6 実行ファイル(gcc/g++)本体のpathを調べる $ port contents gcc6 | grep /bin/ ---------------省略--------------- /opt/local/bin/cpp-mp-6 /opt/local/bin/g++-mp-6 /opt/local/bin/gappletviewer-mp-6 ---------------省略--------------- g++-mp-6のpathを控える。 $ which g++ /usr/local/bin/g++ g++とリンクをする $ sudo ln -sf /opt/local/bin/g++-mp-6 /usr/local/bin/g++ 使えるようになったかな? $ g++ -v やねうら王のsourceフォルダに移動(ダウンロードして解凍してあるものとする) $ cd downloads/YaneuraOu-master/source そのなかにある extra/config.hで使用するCPUを選択。 $ make avx2 // AVX2以降用 $ make sse42 // SSE4.2以降用 $ make sse41 // SSE4.1以降用 $ make sse2 // SSE2以降用 $ make nosse // SSEなし用 など。 コンパイルが出来たみたいなので実行してみる。 $ ./yaneuraou > usi id name YaneuraOu 2016 Mid 3.18 64SSE2 id author by yaneurao option name Threads type spin default 4 min 1 max 128 option name Hash type spin default 16 min 1 max 1048576 option name MultiPV type spin default 1 min 1 max 800 option name WriteDebugLog type check default false option name NetworkDelay type spin default 120 min 0 max 10000 option name NetworkDelay2 type spin default 1120 min 0 max 10000 option name MinimumThinkingTime type spin default 2000 min 1000 max 100000 option name MaxMovesToDraw type spin default 0 min 0 max 100000 option name Contempt type spin default 0 min -30000 max 30000 option name EnteringKingRule type combo default CSARule27 var NoEnteringKing var CSARule24 var CSARule27 var TryRule option name EvalDir type string default eval option name NarrowBook type check default false option name BookMoves type spin default 16 min 0 max 10000 option name Param1 type spin default 0 min 0 max 100000 option name Param2 type spin default 0 min 0 max 100000 usiok > quit |
実行出来たみたい。あとは、将棋ぶらうざQとかで遊べる…のかな?(そこまで試していない)
将棋ぶらうざQ
http://park.geocities.jp/sbrowser_q/
評価関数ファイルなどは以下の説明をご覧を。
https://github.com/yaneurao/YaneuraOu/blob/master/exe/YaneuraOu-2016-mid.txt
私はCore2DuoのiMacしか持っていないのでSSE2用しかコンパイル出来ていない。AVX2用をmakeしようと思ったら、以下のようなエラーが出た。たぶん、CPUがCore2Duoなので、AVX2用の命令が使えるようにセットアップされていないのではないかと思う。よくわからない。
/var/folders/f9/l5xpn0hx0gxdlr_c4p9s88kc0000gn/T//ccQ7M4vv.s:45:no such instruction: vmovdqa (%r14), %xmm0′
ともあれ、あとはお前ら、ガンガレ。
MacPortsよりbrewのほうが良いと思うの(´・_・
)
あと、やねうら王をビルドするだけならg++とリンクさせなくても
make COMPILER="g++のパス"
と指定すれば大丈夫(´・_・)
たぶん(´・_・`)
おお、そうなんですか。情報ありがとうございます。
ウォーニングメッセージの出方はclangの方が好きですw