Raspberry PI2のRaspbian上でObjective-Cの開発環境を整える。
環境:Raspberry PI2 B+, Raspbian Jessie
Raspbian上でObjective-Cをビルドするには、gccまたはclang(+LLVM)とGNUStepのインストールが必要
※GNUStep(GNUStepBaseはFoundationフレームワークを含むライブラリ群。実用的に必須。
※gccはRaspbianにはデフォルトでインストールされている。
※clangは使いたい場合のみインストール。
以下、clangとGNUStepのインストールから、サンプルのコンパイルまでを示す。
1.clang (+LLVM)のインストール(任意)
sudo apt-get install clang
2.GNUStepのインストール
sudo apt-get install gnustep
3.サンプルのビルド
以下、HelloWorld.mのあるディレクトリでビルドする場合の例。
clangの場合:
clang -o HelloWorld HelloWorld.m -l objc -l gnustep-base -I /usr/include/GNUstep/ -fconstant-string-class=NSConstantString
gccの場合:
gcc -o HelloWorld HelloWorld.m -l objc -l gnustep-base -I /usr/include/GNUstep/ -fconstant-string-class=NSConstantString
※コンパイラオプションの解説
-o [バイナリ名 ソースファイル名...] :
ビルド(コンパイル+リンク)後のバイナリファイル名と、 ビルドするソースファイル名(またはオブジェクトファイル名)を指定する。上記では、HelloWorldというバイナリファイル名、HelloWorld.mというソースファイル名を指定している。
-l [ライブラリサーチパス] :
コンパイル時に使用するリンクを指定する
上記ではobjcとgnustep-baseを指定。gnustep-baseはFoundationフレームワークを含むライブラリ。また、AppKitフレームワークを使う場合は、gnustep-guiを追加で指定する必要がある。
-I [ヘッダサーチパス] :
ヘッダファイルを含むディレクトリパスを指定する
上記ではFoundationフレームワークのヘッダファイルを含む/usr/include/GNUstep/を指定している。他のサイトではGNUstepのディレクトリが他になっている場合があるが、自分で試した場合は上記のパスにインストールされていた。
-fconstant-string-class=クラス名:
gcc/clangで使用する文字列定数クラスを変更するオプション。gccのデフォルトではNXConstantStringクラスが使用され、これを使用する場合はソースコードでobjc/NXConstStr.hファイルをインクルードする必要がある。Foundationフレームワークでは文字列定数クラスはNSConstantStringクラスであるため、変更が必要。
(https://gcc.gnu.org/onlinedocs/gcc/Constant-string-objects.html)
以上
0 件のコメント:
コメントを投稿