我得到“苹果的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