为什么我得到这个错误使用XCode 4为我的iPhone项目build立一个静态库?

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

  • Lexical或Preprocessor问题 – 找不到“MyClass.h”文件

但是,应用程序仍然运行,即使通过这个错误。 事实上,当我编译应用程序(它使用静态库)时,它最初说没有错误,然后在一两秒之后,上面提到的错误出现。

我基本上在做:

  1. 使用Coco Touch静态库在项目中创build一个新的目标
  2. 将.m文件添加到目标“编译源”
  3. 在目标中添加.h文件“Copy Headers”
  4. 在“与库链接二进制文件”中添加相同的一组库
  5. 进入configuration文件并修改目标为RELEASE

有什么build议么? 我在这里错过了一步吗?

我会在这刺:-)我认为这可能是MyClass.h已被设置为私人。 因此,当您创build静态库时,它不会被添加到头文件目录中。 您应该通过检查输出头目录来检查是否如此。 如果头文件丢失,那么很确定这是怎么回事。

其次,为什么使用一个单独的应用程序进行testing,因此需要build立一个静态库? 我有几个静态库和应用程序,我用GHUnitunit testing。 我只需添加一个新的应用程序目标并configuration它来运行GHUnit iOS应用程序。 然后,我可以添加我想testing的类和任何testing框架,如OCMock,而无需创build单独的项目。 基本上这听起来像你的testing方法可能比必要的更复杂。 🙂

所以,这个问题原来是我在“其他链接标志”选项中设置了“-ObjC”,我将它放在那里,试图让事情工作我读这是必需的 – 德里克斯build议审查编译日志在这里工作得很好