为什么我会在使用XCode 4为我的iPhone项目构建静态库时遇到此错误?

时间:2011-06-01 01:52:24

标签: iphone objective-c xcode ios xcode4

我有一个现有的iPhone应用程序,我只是想从代码中创建一个静态库,以便我可以通过单独的测试应用程序(在工作区内)使用它。应用程序编译很好,但是当我尝试编译库版本(具有相同的代码文件)时,我收到以下错误:

  • 词汇表或预处理程序问题 - 找不到“MyClass.h”文件

但是,即使存在此错误,应用程序仍会运行。实际上,当我编译应用程序(使用静态库)时,它最初表示没有错误,然后在一两秒后出现上面提到的错误。

我基本上在做:

  1. 使用Coco Touch Static Library在项目中创建新目标
  2. 在目标“编译源”
  3. 中添加.m文件
  4. 在目标“复制标题”中添加.h文件
  5. 在“使用库链接二进制文件”
  6. 中添加相同的库集
  7. 进入个人资料并将目标修改为RELEASE
  8. 有什么建议吗?我在这里错过了一步吗?

2 个答案:

答案 0 :(得分:4)

我会对此有所了解:-)我认为可能是MyClass.h已被设置为私有。因此,在创建静态库时,它不会添加到头目录中。您应该通过检查输出标头目录来检查是否是这样。如果缺少头文件,那么很可能确定会发生什么。

其次,为什么要使用单独的应用程序进行测试,因此需要构建一个静态库?我有几个静态库和应用程序,我用GHUnit进行单元测试。我这样做只需添加一个新的应用程序目标并配置它来运行GHUnit iOS应用程序。然后,我可以添加我想要测试的类和任何测试框架,例如OCMock,而无需创建单独的项目。基本上听起来你的测试方法可能比必要的更复杂。 :-)

答案 1 :(得分:2)

所以,问题结果是我在“其他链接标志”选项中设置了“-ObjC”,我将其置于一个阶段试图让事情正常工作我认为这是必需的 - Dereks建议审查编译日志在这里运作良好