GNUstep を正しくインストールし、環境がセットアップされていると仮定すると (すべてドキュメントで説明されています)、実際にはプロジェクトのルート ディレクトリに空の GNUmakefile を作成し、その中にソースをリストする必要があります。
簡単な「Hello World」コマンド ラインの例を次に示します。
ソース コードを格納するディレクトリを作成します。HelloWorld は良い考えです。
その中で、ファイルを作成しますmain.m
、Greeter.m
およびGreeter.h
.
Greeter
メソッドを 1 つだけ持つクラスを作成します-sayHelloToRecipient:
。
でGreeter.h
:
#import <Foundation/Foundation.h>
@interface Greeter : NSObject {
}
-(void)sayHelloToRecipient:(NSString *)recipientName;
@end
そしてでGreeter.m
:
#import "Greeter.h"
@implementation Greeter
-(void)sayHelloToRecipient:(NSString *)recipientName {
NSLog(@"Hello %@!", recipientName);
}
@end
ファイルmain.m
には単に が含まれてGreeter
おり、引数でそれを呼び出します@"World"
。
#import "Greeter.h"
int main(void) {
Greeter *greeter = [[Greeter alloc] init];
[greeter sayHelloToRecipient:@"World"];
[greeter release];
return 0;
}
ソースをビルドする準備ができたので、あとはGNUmakefile
. 空のファイルを作成し、次の行で開始し、次の行include $(GNUSTEP_MAKEFILES)/common.make
で終了しますinclude $(GNUSTPEP_MAKEFILES)/tool.make
。
最初の行には、GNUstep が提供する他のすべてのメイクファイルとターゲットが含まれています。最後の行には、コマンド ライン ツールを生成するために必要なメイクファイルが含まれています。GUI アプリを作成する場合は、application.make
. 含めるフレームワークの場合framework.make
など
include $(GNUSTEP_MAKEFILES)/common.make
# Your project-specific directives will go here
include $(GNUSTEP_MAKEFILES)/tool.make
これらの行の間に入れるものは、プロジェクトごとに変わるものです。
完全GNUmakefile
なものは次のようになります。
include $(GNUSTEP_MAKEFILES)/common.make
HELLO_ROOT_DIR = $(abspath .)
GNUSTEP_BUILD_DIR = $(HELLO_ROOT_DIR)/build
TOOL_NAME = HelloWorld
HelloWorld_OBJC_FILES = \
Greeter.m \
main.m
include $(GNUSTEP_MAKEFILES)/tool.make
HELLO_ROOT_DIR
は完全にオプションであり、プロジェクトが大きくなるにつれてルートへのパスを再入力する必要がなくなるようにする単なる変数です (メイクファイルの複雑さもそうです)。
TOOL_NAME
コマンドラインツールに必要であり、出力ファイル名を指定し、ラインに使用する必要があるものを決定します(*_OBJC_FILES
つまり、この場合は「HelloWorld」.HelloWorld_OBJC_FILES
TOOL_NAME
これが整っていて、makefile と同じディレクトリにいる場合は、「make」と入力するだけでツールをビルドできるはずです。「ビルド」ディレクトリが作成され、その中に実行可能ファイルがあります。これは、呼び出されると次のように出力されます。
-$ ./build/obj/HelloWorld
2010-11-28 03:36:28.459 HelloWorld[12949] Hello World!
ただし、環境が正しく構成されていない場合、これは機能しません。Windowsでこれを行ったことはありませんが、同じ原則が当てはまると思います。環境を構成するために、Linux/UNIX でシェル スクリプトを実行しています (Windows でバッチ ファイルを実行していますか?)。
-$ . /usr/share/GNUstep/Makefiles/GNUstep.sh
GNUSTEP_MAKEFILES
環境変数をコンソールに出力することで、正しく構成されているかどうかを確認できます。
-$ echo $GNUSTEP_MAKEFILES
(Windowsでこれを行う方法がわからない)
何も出力されない場合は、環境が正しく構成されていないか、GNUstep が正しくインストールされていません。パスが出力される場合は、`make' を安全に実行できるはずです。