【お知らせ】プログラミング記事の投稿はQiitaに移行しました。

クロスコンパイラ

第7回 IT初心者勉強会 アセンブラ大会に参加しました。色々なCPUのアセンブリ言語を比較していて、とても楽しかったです。

そこで使われていたクロスコンパイラをWindows用にビルドしたので配布します。MSYS用です。MSYSはgccを動かすのに特化しており、Cygwinより手軽です。インストール方法はこちらを参照してください。

続きを読む

コンパイラ移植

Excelで動くコンパイラid:n7shi:20100519)をOpenOffice.org Calcに移植しました。マクロを使用しているため、セキュリティを中にしてご利用ください。

以下のアーキテクチャのバイナリを出力できます。

クロス開発

昨日と同じネタですが、今日はWindows CE系が対象です。使用しているファイルはid:n7shi:20100519のものです。


【画像左】Windows Mobileエミュレータ(ARM)の共有フォルダ機能でホストのフォルダをマウントして、ExcelからクロスビルドしたEXEを実行しています。

【画像右】古いSDKに付いてくるPocket PCのエミュレータx86なので、デスクトップ用のWindowsとの違いを比較するのにはちょうど良いです。

Windows Phone 7ではネイティブバイナリや野良アプリが禁止されるので、こういう遊びができなくなってしまいます。

コンパイラ(Windows Mobile対応)

id:n7shi:20100303で公開したExcel上で動くコンパイラが割と好評だったようなので、調子に乗ってWindows Mobile用のARMバイナリも出力できるようにしてみました。

x86を直訳したような冗長なARMのコードを吐きます。残念ながらPocket Excelではマクロが動かないため使えません。

MIZU GAME for NetWalker

id:fslashtさんのMIZU GAMEC++に移植して、Interix上のクロス開発環境(id:n7shi:20091212)でNetWalker用にビルドしました。バイナリ(NetWalker/Windows)とソース(gcc/VC)を置いておきます。

実機がないため原作者のid:fslashtさんに動作確認をお願いしたところ、無事に動作したとのことです。

MIZU GAME for NetWalker動かしてみました!バッチリ動いてますよ〜。たださすがに性能不足でFPSは半分くらい・BGMが途切れがちです。とはいえ動作自体は完全移植ですね。マップエディターも動くとは。SDLUtils.cpp/hでSDL.NETとの差異を吸収ですか

【追記】id:fslasht:20091213にスクリーンショット付きでご紹介いただきました。

続きを読む

クロス開発環境構築

WindowsNetWalker(Ubuntu 9.04 ARM)のアプリをクロス開発するため、Interix上にクロス開発環境を構築しました。基本的な手順はid:n7shi:20091211のFreeBSDと同じですが、Interixではビルドに必要なツールやライブラリを自前で用意しないといけないため大変です。Package Manager for Interixを利用して、自動的にソースをダウンロードしてビルドするようにまとめました。Win32(MinGW)とWin64(id:n7shi:20091004)のクロスコンパイラも同梱しています。

Windows XPでの動作を確認しています。Vistaや7では未確認ですが動作するはずです。独自形式はメンテナンスが大変なので、Debian Interix Portへの移行を検討しています。

続きを読む

クロス開発環境構築

FreeBSD上でNetWalker(Ubuntu 9.04 ARM)のアプリをクロス開発するため、クロス開発環境を構築しました。手順は以下の通りです。

  1. binutils-2.20
  2. ヘッダ・ライブラリ (id:n7shi:20091210より)
  3. gcc-4.4.2

FreeBSDに依存していないため、他のUNIX系OSでも同じ手順が使えるはずです。id:n7shi:20091115の手順と比較すると、glibcは既存のパッケージから流用しているため簡単です。

続きを読む