0

我有一个带有以下代码的defines.h文件

    typedef enum AnswerType : NSUInteger {
    kAnswerTypeNotResponded = 0,
    kAnswerTypeYes = 1,
    kAnswerTypeNo = 2,
    kAnswerTypeComplain = 3
} AnswerType;

当我将此文件导入其他几个文件时 - 我收到错误

ld: 13 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我需要在很多地方都可以看到 AnswerType。实现它的最佳变体是什么?

4

2 回答 2

1

你的枚举看起来不错。但是,我想应该还有另一个问题。

发生此问题的主要原因之一是您可能在构建阶段中列出了不止一次的文件。因此,您需要确保文件在构建阶段仅列出一次

以下是您可以遵循的步骤:

  1. 检查目标设置中的构建阶段。
  2. 检查任何文件是否存在两次。
  3. 如果文件存在两次删除一个。如果不删除底部的文件,这是最新的文件。
  4. 再次构建。

答案的原始来源

于 2016-01-01T23:40:45.013 回答
1

只需按照以下步骤操作即可解决您的问题。

1.进入构建设置

2. 搜索没有公共块和

3.设置为否

4. 再次构建

5. 您不会再收到此错误。

于 2017-08-07T11:14:14.593 回答