我得到「蘋果的Mach-O接頭(Id)的錯誤」:Xcode中重複的符號錯誤
ld: duplicate symbol _matrixIdentity in /BlahBlah/Corridor.o and /Blahblah/Drawable.o for architecture i386
類「走廊」是擴展類「可繪」和「_matrixIdentity」的定義和實施一個文件「Utils.h」。下面是我的頭文件頂線:
Drawable.h
#import <Foundation/Foundation.h>
#import "Utils.h"
@interface Drawable : NSObject
...
Corridor.h
#import <Foundation/Foundation.h>
#import "Drawable.h"
@interface Corridor : Drawable
...
我已經檢查,如果有任何 「.M」 進口替代」。 h「,一切都是正確的。任何想法,可能會導致這個問題?
編輯:從「Utils.h」
#import <Foundation/Foundation.h>
...
#pragma mark -
#pragma mark Definitions
typedef float mat4[16];
#pragma mark -
#pragma mark Functions
void matrixIdentity(mat4 m)
{
m[0] = m[5] = m[10] = m[15] = 1.0;
m[1] = m[2] = m[3] = m[4] = 0.0;
m[6] = m[7] = m[8] = m[9] = 0.0;
m[11] = m[12] = m[13] = m[14] = 0.0;
}
...
我只引用到我的兩個類方法「MAT4」的定義發佈代碼。另外,「matrixIdentity」只是這個文件中的第一個函數,可能是問題不在實現中。
「_matrixIdentity」是如何在文件「Utils.h」中定義和實現的?發佈你的代碼utils.h,請 – meronix 2012-08-02 08:54:46
你的.m文件中是否有全局變量? – 2012-08-02 09:23:03
不,沒有那樣的。 – user1570730 2012-08-02 09:30:10