WindowsでiPhone iPadアプリが開発できるようになるわけではないのであしからず。。。
環境構築
1. Python インストール
インストール手順は割愛
バージョンは、2.7.4をインストールすること。
(2.7.3ではうまく動作しなかったため2.7.4+なら大丈夫かもしれませんが未検証です)
2. MinGW インストール
GNUstepについてはWiki参照 MinGW
公式サイト www.mingw.org - Downloads からmingw-get-setup.exeをダウンロードしてインストールする
3. GNUstep インストール
GNUstepについてはWiki参照 GNUstep
http://www.gnustep.org/experience/Windows.htmlから以下の3パッケージをダウンロード
- GNUstep MSYS System
- GNUstep Core
- GNUstep Devel
上から順番にインストールしていく
4. PATHの設定
環境変数「PATH」に以下を追加
C:\Python27;C:\MinGW\bin;C:\GNUstep\bin;C:\GNUstep\GNUstep\System\Tools;
※それぞれ自分のインストールしたパスに置き換えてください
5. LLVM + clang
はじめに、C:\GNUstep\msys\1.0\msys.batからGNUstep Shell を起動する
以下のコマンドを実行し、LLVM および clangのソースを取得する
User@Host ~
$ svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
$ cd llvm/tools
$ svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
(GNUstep Shellのホームディレクトリは、C:\GNUstep\msys\1.0\home<UserName>にあります)
続いて、~/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp (C:\GNUstep\msys\1.0\home\matsuki\llvm\tools\clang\lib\Frontend\InitHeaderSearch.cpp )を編集します
// FIXME: temporary hack: hard-coded paths.
// 追加 (行:237辺り)
AddPath("C:\\GNUstep\\include", System, false);
AddPath("C:\\GNUstep\\msys\\1.0\\include", System, false);
AddPath("C:\\GNUstep\\msys\\1.0\\include-fixed", System, false);
AddPath("C:\\GNUstep\\lib\\gcc\\mingw32\\4.6.1\\include", System, false);
AddPath("C:\\GNUstep\\lib\\gcc\\mingw32\\4.6.1\\include\\c++", System, false);
AddPath("C:\\GNUstep\\lib\\gcc\\mingw32\\4.6.1\\include\\c++\\mingw32", System, false);
AddPath("C:\\GNUstep\\lib\\gcc\\mingw32\\4.6.1\\include\\c++\\backward", System, false);
AddPath("C:\\GNUstep\\GNUstep\\System\\Library\\Headers", System,false);
// コメントアウト
//AddPath("/usr/local/include", System, false);
break;
これで準備が整ったので、make make install していきます
User@Host ~
$ cd ~/llvm
$ mkdir build && cd build
User@Host ~/llvm/build
$ ../configure --enable-optimized --enable-targets=host-only
$ make
$ make install
結構時間がかかります、自分の環境で2時間ほどかかりました
最後にエラーがでますが、これは無視して問題無いようです。
完了したらとりあえず動くか確認してください
$ clang --version
clang version 3.4 (trunk 181679)
Target: i686-pc-mingw32
Thread model: posix
これで環境構築が完了しました。
実際にソースを書いてコンパイルしてみる
GNUstepShellのホーム上に適当に作業フォルダーを作成し、hoge.m GNUmakefileの2ファイルを作成
User@Host ~
$ mkdir work cd work
User@Host ~/work
$ touch hoge.m GNUmakefile
#import <Foundation/Foundation.h>
int main(){
NSLog( @"Hello");
return 0;
}
include $(GNUSTEP_MAKEFILES)/common.make
TOOL_NAME = Hoge
Hoge_OBJC_FILES = hoge.m
include $(GNUSTEP_MAKEFILES)/tool.make
makeファイルの書き方などは色々参考ページがあるので、そちらを参考してください
編集が終わったら早速コンパイルします
User@Host ~/work
$ make CC=clang
コンパイルが完了すると、「./obj」以下にコンパイルされたexeができているので、実行するとコンソール上にメッセージが表示されます。
最後に
AppkitやFoundationのクラスは結構実装されているため結構遊べそうです
Block構文などはまだサポートしていないものもあるようなので、今後に期待
Objective-Cの勉強や、良いコード思いついたけど手元にWindows PCしか無いじゃないかって時に活躍しそうです。