1

次のようにターミナルでコンパイルしようとします。

$ clang -fobjc-arc -framework Foundation MyClassMain.m -o mc

MyClassMain.m は次のとおりです。

#import <Foundation/Foundation.h>
#import "MyClass.h"

int main (int argc, const char * argv[])
{
    @autoreleasepool {  
        MyClass* mcObj = [[MyClass alloc] init];
        NSLog (@"%@", [mcObj triple]);
        NSLog (@"MyClass main");
    }
    return 0;
}

ターミナルで次のエラーが表示されます。

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_MyClass", referenced from:
      objc-class-ref in MyClassMain-MV6Oew.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

どうやら、MyClass.h/.m が見つかりません。ただし、これらは MyClassMain.m と同じディレクトリに保存されます (関連がある場合)。誰かが私が間違っていたかもしれない場所を提案できますか?

4

1 に答える 1

1

これを試して: clang -fobjc-arc -framework Foundation MyClass.m MyClassMain.m -o mc

_OBJC_CLASS_$_MyClassシンボルが存在するためには、MyClass.m もコンパイルする必要があります。

于 2013-11-06T20:50:54.433 に答える