次のプログラムのコンパイルに問題があります。私は "gcc -framework Foundation inherit8.1m"を使用していて、以下のエラーを受け取ります。私は間違って何をしていますか?ありがとう。Objective-Cプログラムのコンパイル
LD警告は "_main" から参照:crt1.10.5.oのLDに 開始:記号(S)が見つかりませんcollect2はinherit8.1mに、ファイルは、必要なアーキテクチャ未定義 シンボルではありません。 LD は
// Simple example to illustrate inheritance
#import <Foundation/Foundation.h>
// ClassA declaration and definition
@interface ClassA: NSObject
{
int x;
}
-(void) initVar;
@end
@implementation ClassA
-(void) initVar
{
x = 100;
}
@end
// Class B declaration and definition
@interface ClassB : ClassA
-(void) printVar;
@end
@implementation ClassB
-(void) printVar
{
NSLog (@"x = %i", x);
}
@end
int main (int argc, char *argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
ClassB *b = [[ClassB alloc] init];
[b initVar]; // will use inherited method
[b printVar]; // reveal value of x;
[b release];
[pool drain];
return 0;
}
は、あなたが質問がasweredされた方でもかかわらず、この質問を見たことは面白いです: 私は
source.m
からコンパイルコマンドラインツールLogTest
を持っています。私は現在コカンの本の同じ部分を読んでいます。素晴らしい本ですか? xcodeを使ってみませんか? –私はObjective-Cを学ぶのが急いで、Macシェルにアクセスできました。 (ただし、物理マシンへのアクセスはありません)XCodeははるかに便利です。 – Stu