0

可能重复:
标头变量的 obj-c 重复符号

我的项目中有多个 .m 和 .mm 文件。我可以在任意数量的 .m 文件中包含这个 .h 文件(该文件有相应的 .m 或 .mm 文件),但是当我将它包含在多个 .mm 文件中时,我得到重复符号链接器错误。

同样在 .h 文件中,我用预处理器命令包围了内容(这些命令在 obj-c 中得到尊重吗?)这是它的主要外观:

#ifndef _CONFIG_H_
#define _CONGIF_H_

CGFloat WIDTH, HEIGHT;
// other similar code...

#endif

我在 WIDTH 和 HEIGHT 上收到重复符号错误

4

1 回答 1

7

你应该添加

extern

在标头中的 CGFloat 声明之前使用关键字,并在 .m 文件中定义不带 extern 的变量,以避免在多个位置定义变量。

在标题中:

extern CGFloat WIDTH, HEIGHT;

在 .m 文件中(其中一个,任何一个)

CGFloat WIDTH, HEIGHT;
于 2012-11-10T04:42:49.577 回答