前回 winChain のセットアップは完了したが、いきなり iPhone の GUI アプリを作成するのは荷が重い。Jailbreak した iPhone(僕が持っているのは iPod Touch だけど)ならばシェルも使えるので、まずはシェル上で実行できるコマンドラインアプリを作成してみる。
1) 以下の hello.c を作成する。
#includeint main(int args, char *argv[]) { printf("Hello, dreamhound!\n"); return 0; }
2) 以下の Makefile を作成する。
CC=/usr/local/bin/arm-apple-darwin-gcc -v
CXX=/usr/local/bin/arm-apple-darwin-g++
TARGET=hello
LD=$(CC)
LDFLAGS = -framework CoreFoundation \
-framework Foundation \
-framework UIKit \
-framework LayerKit \
-framework CoreGraphics \
-framework GraphicsServices \
-framework CoreSurface \
-lobjc
all: $(TARGET)
Hello: $(TARGET).o
$(LD) $(LDFLAGS) -o $@ $^
%.o: %.m
$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
clean:
rm -f *.o $(TARGET)
3) hello.c と Makefile を cygwin でアクセス可能な適当なディレクトリへコピーする。
例えば /iphone-apps/hello というフォルダを作成してコピーする。cygwin のルートは Windows パスでは C:\cygwin なので、/iphone-apps/hello は C:\cygwin\iphone-apps\hello を指す。
4) cygwin のシェルを開いて3のディレクトリへ移動する。
5) プログラムをビルドする。
$ make
エラーが出たら何かが間違っているということ。正常終了すれば hello という実行ファイルが作成されるはず。
6) WinSCP 等のSecure Copy クライアントを使って、5で作成した hello を iPhone の適当なディレクトリへコピーし、実行パーミッションを設定しておく。
例えば /temp/dreamhound ディレクトリを作成してコピーする。
![]()
7) TeraTerm +TTSSH 等の SSH クライアントを使って iPhone に接続し、6で hello をコピーしたディレクトリへ移動して hello を実行する。
printf で指定した文字列が正しく表示されていればOK。

コマンドラインソフトの作成は簡単だった。次は iPhone の GUI を使ったアプリの作成に挑戦してみよう。