ソリューションファイル(.sln)に指定されたVisual Studioのバージョンを上げる
コマンドラインから行う方法が以下に載っている。
https://docs.microsoft.com/ja-jp/visualstudio/ide/reference/upgrade-devenv-exe?view=vs-2019
IDEからやる方法があれば教えてください。
主専攻実験を手元でやるためにGBA開発環境を構築する
春の主専攻実験がGBA用のプログラムを開発するというもので、開発のためにわざわざ機室に行くのが面倒なのと開発時間を十分に取りたかったため、クロスコンパイルや実機への転送を手元でもできるように環境構築をするお話。
いつものごとくWindows用だけど、プログラムのビルドにはWSLを使っていたり、エミュレータも他プラットフォーム用のビルドがあったりするので、頑張れば他のプラットフォームでもできそう。
2019-04-27追記
本記事は主専攻実験履修者向けです。GBAへのプログラムの転送には実験で配布される機器が必要であり、また本記事も実験の手順書を一読していることを前提に記述しています。
プログラムをGBAに転送できるようにする
まだビルド環境すらできていない状態だけど、転送できるようにするのはいつやっても問題ないので最初に書いておきます。
基本エミュレータ使うし実機での動作確認は機室でいいやって人と、非Windowsユーザーは飛ばしてください。*1
実験で用いることになっている転送プログラムのoptusbは*nix向けで、また古いためそのままWindowsで動かすのは苦労しそう…ということで、Windows向けoptusb移植を作りました。
(問題があれば消します。)
導入方法はREADMEに書いたので、その通りにやってください。
また、後々便利なようにoptusbx.exeをPATHの通った場所に置いておくことをおすすめします。optusbx.exeを移動するときは、付属のDLLファイルも一緒に移してください。
GBA用のプログラムをビルドできるようにする
正直転送さえできれば(もっと言うとできなくてもエミュレータさえあれば)、プログラムのビルドは機室のマシンにリモート接続してできるから既に完全リモートにはできるんだけど、やっぱりビルドも手元でやりたいよね。
というわけでGBA用にビルドできるようGCCを雑に導入します。*2
2020-10-21追記
私は最終的にはここに記載した内容とは異なる方法でツールチェインを導入しました(ビルドツールにはARM社が提供するバイナリを用い、CMakeでプロジェクトを管理しています)。
それらを含む私の最終的な成果物は以下のリポジトリにあります。github.com
GBAとかの開発環境の構築に使えるdevkitProなる開発ツール群インストーラ的なのもあるらしいけど、今回はGBAのROMファイルとかまで作る必要はない(マルチブート用のプログラムファイルだけ作成できれば良い)ので、簡単に行いましょう。
以降はWSLを使用するので、導入していない場合は導入してください。LinuxディストリビューションはUbuntuとして説明しますが、概ね他のディストリビューションでも変わらないと思います、多分。
はじめにgcc-arm-none-eabiをインストールします。1GB強ほどのディスク容量を消費するみたいなので注意。
$ sudo apt update
$ sudo apt install gcc-arm-none-eabi
$
以上です。これで必要なツールは一式揃いました。
が、インストール直後の状態だとARM用のgccなどのコマンド名がarm-none-eabi-gccとなって冗長なのと、なにより手順書のものと異なってしまうため、手順書で使われているプログラム名(gcc-armなど)で使用できるようにaliasを貼ります。*3
# - install arm-none-eabi-gcc in advance
# - For WSL: set PATH (of Windows) for the directory of optusbx.exe
# use arm-none-eabi-* via *-arm
for command in `ls /usr/bin/arm-none-eabi-* | xargs -n 1 basename | sed s/^arm-none-eabi-//`; do
alias ${command}-arm=arm-none-eabi-${command}
done
# for WSL: use optusbx.exe via optusb / optusbx
alias optusbx=optusbx.exe
alias optusb=optusbx
これをシェルスクリプトなり.bashrcなりに書いて実行すればgcc-armでコンパイルできるようになるはず。
ついでにoptusbx.exeもoptusbの名前で使えるようにしているので、optusbx.exeがPATHの通った場所にあればWSLではoptusbで呼び出すことができます。
こんなところでだいたい機室と似たような開発環境になると思います。
エミュレータを導入する
正直実機に転送する手間もエミュレータで起動する手間も変わらない気はするけど、パソコン1つで完結したほうがいろいろと楽な気もするので動作確認用にエミュレータも導入しておきます。
エミュレータにはなんとなく良さげなVisual Boy Advance - Mを用います。
他のでも良いとは思うけど、確認はしていません。
導入方法は上記サイトを参照してください。
Windowsの場合はReleasesからバイナリを落とせば良いです。
(zipの中にぽつんとある実行ファイルがエミュレータ本体の模様。インストーラは付属しないっぽい。)
実行は基本的にエミュレータの画面にプログラムファイルを投げるだけだけど、拡張子を.binから.mbに変更しないと起動できないので注意。*4
最後に
良いGBAライフを。
ちなみに古い32ビットWindows環境が用意できれば貸し出された機器でROMの吸い出しとかもできそうです。ぜひとも試したいですね。
WindowsのImageMagickでPDFを変換できない場合
なんかエラーが出てたら32ビット版のGhostscriptを入れる。
エラーも出てないのに出来ない場合は64ビット版のGhostscriptを消して32ビット版を入れ直す。
Ghostscriptのダウンロードリンク:https://www.ghostscript.com/download/gsdnld.html
ImageMagickのダウンロードリンク:https://www.imagemagick.org/script/download.php#windows
今確認したら64ビット版のGhostscriptで大丈夫になってた。
もしかしたらこれかも。
npm config set python してるのに node-gyp で Python のバージョン違いによるエラーが発生する場合の対処法
表題の通り。
環境
コマンドプロンプトからnode-gyp
を叩いたらエラーが出た。
TL; DR
Windowsの環境変数にnpm_config_python
を追加する。 msvs_version
も指定する場合はnpm_config_msvs_version
を追加する。
大文字小文字注意(全部小文字)。
環境変数を設定した後は再起動なり再ログオンなりするべき。
原因
npm-scripts が実行されたときは npm-config の設定が環境変数に npm_config_* として追加されるが、node-gyp
を直接叩いた場合は何らかの理由で追加されていない模様。
おそらく.bin
の実行時はnpm_config_*の環境変数が追加されないということなのだろうが、もしかしたらnvm-windowsとかのバグかもしれない。詳しく知りたい人は調査してください。
テスト
#はじめてのブログ記事
登録をしてみたものの何も書くことがないので以上です。
PCを組むレポートを書きたい。書く気が起きれば。