2011-01-26 91 views
3

我最近添加一些代码OpenFeint的我类和改变他们.mm重复的符号

突然我得到重复的符号错误的目标文件建立时发现。

LD:重复的符号_audioPlayer中等等等等/Objects-normal/i386/Stage2.o和/用户/等等等等.build /调试-iphonesimulator/blah.build /对象 - 正常/ I386/Stage1.o

为什么突然造成这个错误?究竟是什么错误?

我在不同的类中有相同名称的变量,它应该是一个问题?

感谢

回答

3

你可能会声明两个变量与全局范围内的相同名称(不在接口内部),链接器正在抱怨。

1

简短的回答是,你可以抑制这个错误的命令行参数GCC: 轮候册, - 允许用多重定义

+0

如何在XCode中执行此操作?谢谢 – jarryd 2011-01-26 18:18:57

1

如果在.mm文件中执行如下所示的方法,将会发生duplicate symbol error

#import <Foundation/Foundation.h> 

class CppTestOne 
{ 
public: 
    void Test(); 
// { 
//  NSLog(@"Hello C Plus Plus"); 
// } 
}; 

void CppTestOne::Test() 
{ 
    NSLog(@"Hello C Plus Plus"); 
} 

那么你可以通过

#import <Foundation/Foundation.h> 

class CppTestOne 
{ 
public: 
    void Test() 
    { 
     NSLog(@"Hello C Plus Plus"); 
    } 
}; 

//void CppTestOne::Test() 
//{ 
// NSLog(@"Hello C Plus Plus"); 
//} 

进一步了解这个错误并不清楚

3

如果导入一个.m文件,而不是.H也会出现此错误执行你的方法。

#import "SomeClass.m"