我的项目中有多个.m和.mm文件。我可以在我喜欢的.m文件中包含这个.h文件(该文件具有相应的.m或.mm文件)但是当我将它包含在多个.mm文件中时,我得到重复符号链接器错误。< / p>
同样在.h文件中,我用预处理器命令包围了内容(在obj-c中这些是否被尊重?)这里的内容大概是这样的:
#ifndef _CONFIG_H_
#define _CONGIF_H_
CGFloat WIDTH, HEIGHT;
// other similar code...
#endif
我在WIDTH和HEIGHT
上得到重复的符号错误答案 0 :(得分:7)
你应该添加
extern
在标题中使用CGFloat声明之前的关键字,并在.m文件中定义不带extern的变量,以避免在多个位置定义变量。
在标题中:
extern CGFloat WIDTH, HEIGHT;
在.m文件中(其中一个,任何一个)
CGFloat WIDTH, HEIGHT;