#import <Foundation/Foundation.h>@interface CZDog : NSObject
{
@public
    char *_name;
    BOOL _canbit;
}
@end@interface person : NSObject
{
    int _age;
}
- (void) bitdog:(CZDog *)dog1 tobit:(CZDog *)dog2;
@end@implementation person
- (void) bitdog:(CZDog *)dog1 tobit:(CZDog *)dog2{
    if (dog2->_canbit == YES) {
        NSLog(@"%s bit %s",dog1->_name,dog2->_name);
    }else
        NSLog(@"I can not bit");}
@endint main(int argc,char **argv){
    CZDog *dog1 = [CZDog new];
    CZDog *dog2 = [CZDog new];
    dog1->_name = "dog1";
    dog1->_canbit = YES;
    dog2->_name = "dog2";
    dog2->_canbit = NO;
    person *p1 = [person new];
    [p1 bitdog:dog1 tobit:dog2];
    return 0;
}Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_CZDog", referenced from:
      objc-class-ref in main.o
  "_OBJC_IVAR_$_CZDog._canbit", referenced from:
      -[person bitdog:tobit:] in main.o
      _main in main.o
  "_OBJC_IVAR_$_CZDog._name", referenced from:
      -[person bitdog:tobit:] in main.o
      _main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

解决方案 »

  1.   

    多个人共同操作同一个项目或拷贝项目时,经常会出现类似这样的问题:
    Undefined symbols for architecture i386:
    "_OBJC_CLASS_$_xx文件名", referenced from:
    下面是可能导致这类问题出现的原因及修改:
    1.相关工程文件未导入
    你可以直接在这里+进来,也可以在左边工程目录中把文件全部重新导人一遍(多人操作工程时,一般这种解决办法)
    2..framework文件未导入
    把xx文件库+进来,本问题"_OBJC_CLASS_$_ASIdentifierManager", 就是因为AdSupport.Framework类库未加
    3.文件路径缺失检查是否某些文件路径未加入进来或者写错了
    工程编译报出:Undefined symbols for architecture i386:和"_OBJC_CLASS_$_xx", referenced from:错误,问题大致是由于上面这几种情况,把各个方面检查下基本就ok了。
    版权声明:本文为博主原创文章,未经博主允许不得转载。