1

私は GNUStep をいじっていましたが、正常にコンパイルされる単純な main.m があります。Objective-C ライブラリ (ios/mac 用) が GNUStep で動作するかどうかを確認したかったので、JSONKit をダウンロードしてコンパイルしようとしましたが、このエラーが引き続き発生します。

mark@Emperor:~/objc-test2$ make
This is gnustep-make 2.6.2. Type 'make print-gnustep-make-help' for help.
Making all for tool Test...
Compiling file JSONKit.m ...
In file included from JSONKit.m:110:0:
JSONKit.h:63:21: warning: "/*" within comment [-Wcomment]
In file included from /usr/include/GNUstep/Foundation/NSAttributedString.h:143:0,
             from /usr/include/GNUstep/Foundation/Foundation.h:42,
             from JSONKit.h:72,
             from JSONKit.m:110:
/usr/include/GNUstep/GNUstepBase/NSAttributedString+GNUstepBase.h:44:1: error: cannot find interface declaration for ‘NSAttributedString’
make[3]: *** [obj/Test.obj/JSONKit.m.o] Error 1
make[2]: *** [internal-tool-all_] Error 2
make[1]: *** [Test.all.tool.variables] Error 2
make: *** [internal-all] Error 2
mark@Emperor:~/objc-test2$

私のmain.mはこれです:

mark@Emperor:~/objc-test2$ cat main.m
#import <stdio.h>
#include <Foundation/Foundation.h>
#import "Fraction.h"
#import "JSONKit.h"
    int main( int argc, const char *argv[] ) {
        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
        // create a new instance
        Fraction *frac = [[Fraction alloc] init];

        // set the values
        [frac setNumerator: 1];
        [frac setDenominator: 3];

        // print it
        NSLog(@ "The fraction is: %@", [frac print]);

        // free memory
        [frac release];

        NSMutableArray *testArr = [[NSMutableArray alloc] initWithCapacity:0];
        [testArr addObject:[NSNumber numberWithInt:2]];
        [testArr addObject:@"Hey"];
        NSLog([testArr JSONString]);


        [pool drain];
        return 0;

    }
mark@Emperor:~/objc-test2$

私はググって、GNUStep環境変数が設定されていることを確認しました.makeファイルを使用しています(オンラインの例から取得)

mark@Emperor:~/objc-test2$ cat GNUmakefile
include $(GNUSTEP_MAKEFILES)/common.make

TOOL_NAME  = Test
Test_OBJC_FILES = main.m Fraction.m JSONKit.m
Test_CPPFLAGS = $(RUNTIME_DEFINE)
# Include in the rules for making Objective-C programs
include $(GNUSTEP_MAKEFILES)/tool.make
mark@Emperor:~/objc-test2$

/Foundation/NSAttributedString.h には NSAttributedString のインターフェイス宣言と NSAttributedString+GNUStepBase.h imports が明確に含まれているため、これは本当にわかりません。何が問題なのですか?

4

0 に答える 0