2011-01-26 109 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"