重复的符号

时间:2011-01-26 18:04:21

标签: iphone

我最近在我的类中添加了一些openfeint代码,并将它们更改为.mm

突然间,我发现在构建时在目标文件中找到重复符号的错误。

  

ld:复制符号_audioPlayer,用blah blah /Objects-normal/i386/Stage2.o和/ Users / blah blah .build / Debug-iphonesimulator / blah.build / Objects-normal / i386 / Stage1.o

为什么突然导致此错误?究竟是什么错误?

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

由于

4 个答案:

答案 0 :(得分:3)

您可能在全局范围内声明了两个具有相同名称的变量(而不是在接口内部),并且链接器正在抱怨这一点。

答案 1 :(得分:3)

如果导入.m文件而不是.h,也会发生此错误。

#import "SomeClass.m"

答案 2 :(得分:1)

简短的回答是你可以使用gcc的命令行参数来抑制此错误: -Wl, - 允许-多定义

答案 3 :(得分: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");
//}

此错误的详细信息不清楚