Pierwszy program w Objective-C na Ubuntu

Do rozpoczęcia pracy potrzebujemy przygotować sobie środowisko:

sudo apt-get install gobjc gnustep-devel gnustep-make gnustep-common libgnustep-base-dev

Do pliku ~/.bashrc (lub odpowiedniego pliku dla innego shella) dodajemy linijkę:

source /usr/share/GNUstep/Makefiles/GNUstep.sh

Odrobinę zmodyfikowałem przykład: Fraction.

Kod kompilujemy poleceniem: make
Po skompilowaniu aplikację uruchamiamy za pomocą: ./main.app/main

Poniżej pliki źródłowe:

.
├── Fraction.h
├── Fraction.m
├── GNUmakefile
└── main.m

Fraction.h

#import <Foundation/NSObject.h>

@interface Fraction: NSObject {
    int numerator;
    int denominator;
}

-(void) print;
-(void) setNumerator: (int) n;
-(void) setDenominator: (int) d;
-(int) numerator;
-(int) denominator;
@end

Fraction.m

#import "Fraction.h"
#import <stdio.h>

@implementation Fraction
-(void) print {
    printf( "%i/%i", numerator, denominator );
}
-(void) setNumerator: (int) n {
    numerator = n;
}
-(void) setDenominator: (int) d {
    denominator = d;
}
-(int) denominator {
    return denominator;
}
-(int) numerator {
    return numerator;
}
@end

GNUMakefile

include ${GNUSTEP_MAKEFILES}/common.make

APP_NAME = main
main_OBJC_FILES = main.m Fraction.m

include ${GNUSTEP_MAKEFILES}/application.make

main.m

#import <stdio.h>
#import "Fraction.h"

int main( int argc, const char *argv[] ) {
    // create a new instance
    Fraction *frac = [[Fraction alloc] init];

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

    // print it
    printf( "The fraction is: " );
    [frac print];
    printf( "\n" );

    // free memory
    [frac release];

    return 0;
}

Posted on 11/08/2012, in Inne. Bookmark the permalink. Dodaj komentarz.

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s

%d bloggers like this: