初めてSGDKを使い始めた頃は右も左も分からず~な状態でしたが、慣れてくるとなるほどそうだったのかということが見えてきます。その一つがプロジェクトの設定項目で、最初に書いた「SGDKとCode::Blocksでメガドラゲーの開発環境を整えてみる」も今読み返すとちょっとまって!という箇所がありました。
SGDKを新規インストールした時の新規プロジェクト作成設定ではこのようになっていました。
このままでもメガドラ用のROMイメージは作成できるのですが、ちょっとだけ手を入れる箇所があります。
2箇所、上記画像のconfigurationの箇所のテキストを書き換えます。大文字小文字を間違えないようにしてください。この2つがコンパイルのターゲットとして設定されることになります。
また、新規でソースファイルを追加する時にも、それぞれのターゲットに追加するようにします。
SGDKの標準的なMakefileであるmakefile.genでは、debugとreleaseの2種類のターゲット設定がされているので、それに合わせたということです。
コンパイル時のターゲット指定はCode:Blocksのツールバーにあります。
簡単に説明すると、relaseを選んだ場合はデバッグ用の情報を含んでいないカートリッジのイメージが生成されて、debugだと、デバッグ情報が含まれるイメージが作られます。また、シンボルファイルも生成されるので、変数名、関数名の割り当てアドレスを参照できますからエミュレータでのデバッグが捗ります。なんでもデバッグ情報を含んだイメージを使えるエミュレータもあるそうです。(まだそのへんはよくわかってません)
それから、Code::Blocksのメニューのrebuildとclearnがちゃんと動くようになります。リソースファイルを変更した場合、Code::Blocksが認識してくれない場合があるので、これが一番重要かもですね。
あと、プロジェクト設定でdebugはbinとobjフォルダ、releaseではoutフォルダを指定していますが、なぜかどちらのターゲットもoutフォルダにファイルを出力します。makefile.genの設定のどこかだと思いますが、とりあえず放置しておきます。
これまでに作ったプロジェクトでもターゲット設定は変更&追加できます。左端のWorkspaceのプロジェクトをマウス右ボタンメニューからProperties...を選んで、
Renameボタンでターゲット名を変更出来ます。