PC6001V をWindows でビルドしようぜ (失敗の巻)(追記あり)
あまりいらっしゃらないと思いますが、一応メモっておきます。
下記を参考にして、MSYS2 と、mingw を入れます。
下記を参考にして、x86_64 のミラーを Jaist に変えます。
変えなくてもいけるかもしれませんが、私の環境では、ffmpeg を入れるときに、通信が遅すぎるなどの理由で、途中で止まってしまったので、変えた方が良さそうです。
上記のURLを参考にしながら、c:¥msys64¥etc¥pacman.d¥mirrorlist.mingw64 ファイルの先頭に、下記の文言を挿入します。(vim からは挿入できなかったので、Windowsのテキストエディタで変更)
Server = https://jaist.dl.sourceforge.net/project/msys2/REPOS/MINGW/x86_64
先頭から順番に使われるためらしいです。
必要なライブラリを入れます。
$ pacman -S mingw-w64-x86_64-ffmpeg
$ pacman -S mingw-w64-x86_64-libpng
$ pacman -S mingw-w64-x86_64-SDL2
PC6001V のソースリストを落としてきて、適当なディレクトリに展開します。
Makefile のあるところで、make します。
。。。が、なぜか、リンクエラーになりますね。。(´・ω・`) ショボーン
-lrav1e とか、-ld1 などが見つからないそうです。。
大体は、あっていると思うのですが。。
なぜ?
ちなみに、1年前も、同じようなことをやっていたようですが。。この時も同じだったのかな?(´・ω・`)
追記
-lrav1e は、スタティックリンク用の、librav1e.a というファイルを探しているようです(後ろから二文字目は、数字の1)が、ffmpeg を入れても、入ってくれません。ダイナミックリンク用の、librav1e.dll.a ならあるので、とりあえず、リンカーに渡しているオプションから、-static-libgcc -static-libstdc++ --static を削除します。
あと、-ldl というのが何回も出てきますが、なくても通るようなので、これも削除すれば、通るように成ります。
私は、make -n >ld.sh とやって、ld.sh を編集しました。make でリンクに失敗しますが、そのあと、sh ld.sh とやると通るようになります。
ただし、制限があります。起動するときは、Windows のエクスプローラーから、起動しようとすると、dll などが見つかりませんエラーになります。mingw64 のターミナルから、./PC6001V とする必要性があります。
または、必要になるDLLファイルを、実行ファイルと同じところに、全部コピーしておくかですが、それも面倒ですね。
おそらく、ゆみたろさんは、なんらかの方法で、librav1e.a ファイルを作成して、リンクしているのか。。。?わかりませんが、ようやく、とりあえずの回避策は、見つけられました。。