3

Windows で GNUstep を使用してアプリケーションをコンパイルして調査しています。これは私の main.m ファイルです:

#import <???/???.h>

int main(int argc, const char *argv[]) 
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    [NSApplication sharedApplication];
    [pool release];
}

これは控えめに言っても不完全なフラグメントであり、明らかに何もしないことを認識しています。Cocoa/Cocoa.h、GNUstepGUI/GMAppKit.h など、いくつかの異なるインポート ステートメントを試しましたが、オンラインでヘルプが見つからないというコンパイル エラーが常に発生します。

これは、mingw シェルから実行しているコンパイル コマンドです。

gcc -o test main.m -I /GNUstep/System/Library/Headers/ \
    -L /GNUstep/System/Library/Libraries/ -lobjc -lgnustep-base \
    -fconstant-string-class=NSConstantString -enable-auto-import

これらは私が得るエラーです:

c:/WINDOWS/TEMP/ccHxKZG2.o:main.m(.data+0x390): 未定義参照
  '___objc_class_name_NSApplication'
collect2:ld が 1 つの終了ステータスを返しました

#import する必要があるもの、またはコンパイル コマンドで修正が必要なものについてのアイデアはありますか?

ありがとう!

4

3 に答える 3

4

Peter Hosey のおかげで、答えのあるページに自分で Google でアクセスできました。

http://psurobotics.org/wiki/index.php?title=Objective-C

OS X 開発とは異なり、「makefile」が必要です。

これを、ソースと同じディレクトリにある「GNUmakefile」というファイルに入れます。

$(GNUSTEP_MAKEFILES)/common.make を含める

APP_NAME = マイアプリ名
MyAppName_HEADERS =
MyAppName_OBJC_FILES = main.m
MyAppName_RESOURCE_FILES =

$(GNUSTEP_MAKEFILES)/application.make を含める

次に実行

作る

ページは実行するように言います

openapp ./MyAppName.app
しかし、.app フォルダー内の .exe ファイルは単独で実行されているように見えます。

于 2009-09-15T23:04:40.147 に答える