typedef 在单独的头文件中
typedef in separate header file
我有一个包含以下代码的 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 在很多地方都可见。实现它的最佳变体是什么?
你的枚举看起来不错。不过,我想应该还有另一个问题。
出现此问题的主要原因之一是您可能在构建阶段多次列出一个文件。因此,您需要确保 文件仅在构建阶段中列出一次 。
以下是您可以遵循的步骤:
- 检查目标设置中的构建阶段。
- 检查是否有任何文件存在两次。
- 如果文件存在两次删除一个。如果不删除最下面的文件就是最新的
- 再次构建。
Original source of answer
只需按照以下步骤操作即可解决您的问题。
1.转到构建设置
2。搜索无公共块和
3。设置为否
4.重新构建
5.您不会再收到此错误。
我有一个包含以下代码的 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 在很多地方都可见。实现它的最佳变体是什么?
你的枚举看起来不错。不过,我想应该还有另一个问题。
出现此问题的主要原因之一是您可能在构建阶段多次列出一个文件。因此,您需要确保 文件仅在构建阶段中列出一次 。
以下是您可以遵循的步骤:
- 检查目标设置中的构建阶段。
- 检查是否有任何文件存在两次。
- 如果文件存在两次删除一个。如果不删除最下面的文件就是最新的
- 再次构建。
Original source of answer
只需按照以下步骤操作即可解决您的问题。
1.转到构建设置
2。搜索无公共块和
3。设置为否
4.重新构建
5.您不会再收到此错误。