类的重复接口声明

时间:2014-06-26 17:14:53

标签: objective-c xcode objective-c++ xcode4.6.3

我有一个有多个目标的项目。还有一个嵌入式项目,其输出是一个框架 其中一个目标只需要该框架的几个文件{.h,.m},所以..我只是引用它们。现在,当我构建特定目标时,我收到此错误:

  

在/Users/../someClass.m:10中包含的文件中:Foo.h:11:1:错误:
  类' Foo'的重复接口定义   @interface Foo:NSObject {
  ^
  /Users/....MyProject/DerivedData/MyProject/Build/Products/Debug/MyFramework.framework/Headers/Foo.h:11:12:

     

注意:之前的定义在这里   @interface Foo:NSObject {
                 ^

我看到的是:Xcode找到两个Foo类副本,一个是引用的副本,另一个是MyFramework中包含的副本。 (两个副本都是同一个文件) 问题是,这个目标不是用MyFramework构建,链接或做任何事情。 (也就是说,对于我的目标:0个目标依赖项,Foo.m包含在'编译源代码中,而MyFramework未列在'链接二进制文件库中)。

问题:  1.如何在没有链接MyFramework的情况下构建目标

谢谢!

FYI。
我正在使用Xcode 4.6.3
框架是C,C ++和ObjC之间的混合体。 - 编译为ObjC ++和ARC启用 我遇到问题的目标是C和ObjC 没有 ARC。

1 个答案:

答案 0 :(得分:0)

添加一名包含守卫。看这里: C++ #include guards

如果你已经有一名包含守卫,请仔细检查#ifndef和#define是否匹配。