1

だから私はこのコードを持っています...

/**
 * cdb.m
 * Copyright (C) 2013 Naveen Mathew. All rights reserved.
 */

#import <objc/Object.h>
#import "cdb.h"
#import <stdio.h>
#import <stdlib.h>

@implementation CDB : Object
{

}

- (int) main {
    printf("Hello world");
    return 0;
}

@end

int main(void)
{
    CDB *myNumber = [CDB new]; // equal to [[Number alloc] init]
    [myNumber main];

    return 0;
}

そして、Ubuntu 13.04でコンパイルしたいのですが、GNUStepが私に与えるすべてのがらくたはありません。したがって、GNU Objective C ランタイム (gobjc) を使用しますが、コンパイルすると次のようになります...

clang -Wall -lobjc -o cdb cdb.m -I/usr/lib/gcc/x86_64-linux-gnu/4.7/include
cdb.m:25:21: warning: class method '+new' not found (return type defaults to
      'id') [-Wobjc-method-access]
        CDB *myNumber = [CDB new]; // equal to [[Number alloc] init]
                        ^    ~~~
1 warning generated.

プログラムを実行すると、セグメンテーション違反が発生します... gobjc 4.7 を使用しています。gobjc 4.6 で試してみました...コンパイルはできますが、まだセグメンテーション違反が発生します...

4

2 に答える 2