如果找不到GPUImage框架的GPUImage.h头,我该怎么办?

时间:2012-04-30 10:47:13

标签: objective-c ios filter

我使用GPUImage framework创建了一个执行凹凸失真的示例应用程序。我将此框架添加到我的应用程序中,但我看到以下错误

  

词法或预处理器未找到“GPUImage.h”文件。

我已将-ObjC标志添加到其他链接器标志,但我仍然看到此错误。如何解决这个问题并让我的应用程序编译?

4 个答案:

答案 0 :(得分:30)

将GPUImage框架添加到XCode项目可能会非常棘手。所以我已经添加了有关如何操作的详细步骤说明。

静态编译方法(详细解决方案,所以我们不要搞砸)

这是静态编译方法。基本上我们将使用./build.sh文件编译框架。只需将其添加到我们的XCode项目中,然后配置XCode以正确使用它。

  1. 从Github下载GPUImage并将其解压缩(或者只是克隆它)。
  2. 转到终端
  3. 中的GPUImage文件夹
  4. 运行 ./ build.sh

    注意:这将为您Mac上的所有sdks编译并创建即用型二进制文件。

  5. build.sh创建一个名为 build 的文件夹并生成已编译的二进制文件并将其转储到以下文件夹中:发布 - iPhone 发布 - iPhoneOS < / strong>,发布 - iphonesimulator 等文件夹。 enter image description here

  6. 对于iPhone使用发布 - iphone (这也适用于模拟器)。
  7. Release-iphone 复制(而不是拖放)到您的XCode项目的根目录,以便我们拥有框架的本地副本。
  8. 现在,iPhone将 Release-iphone 拖放到您的XCode项目中。确保选中“复制到...”选项。

    注意:

    • Release-iphone 文件夹包含两个子文件夹:包含 lib
    • 包含文件夹包含所有标题 .h 文件
    • lib 文件夹包含已编译的二进制版本文件,名为 libGPUImage.a
    • 我们现在需要简单地将XCode配置为使用.h和.a文件。**
  9. 在项目浏览器中选择项目&gt; 目标&gt;下的项目名称选择Build Phases&gt;展开使用库链接二进制文件

  10. libGPUImage.a 添加到Link Binary With Libraries部分。您可能需要右键单击 libGPUImage.a ,然后在Finder中打开,最后拖放它。

  11. 当我们在这里时,还要添加以下GPUImage的依赖框架/库 CoreMedia,CoreVideo,OpenGLES,AVFoundation,QuartzCore 链接二进制文件库部分 enter image description here

  12. 现在,让我们配置 .h 标题。

  13. 在项目浏览器中选择项目&gt; 目标&gt;下的项目名称选择构建设置&gt;并输入搜索路径以查看搜索路径部分。

  14. 点击值字段,打开标题搜索路径

  15. lib 文件夹拖放到该弹出窗口。注意:如果显示绝对路径,请将其更改为 $(SRCROOT)/ path / to / lib / 。 (您应该拥有与您的xcode项目相关的框架,请参阅步骤6)。

  16. 重复11&amp; 12也适用于图书馆搜索路径

  17. enter image description here 其他提示:您可以将 .h 文件添加到图书馆搜索路径标题搜索路径,您可以将它们递归。我有一个名为 Dependencies 文件夹的主根文件夹,我保留了所有依赖项,如MySDK-framework,包括Release-iPhone。我只在Dependencies(根文件夹)中有一个搜索路径,并使其递归

答案 1 :(得分:6)

您是否遵循了project page上自述文件中的所有说明?从安装说明:

  

你还需要找到框架标题,所以在你的   项目的构建设置将标题搜索路径设置为相对   从您的应用程序到其中的框架/子目录的路径   GPUImage源目录。将此标题搜索路径递归。

如果您看到上述错误,则表示您没有将标题搜索路径指向您已在相对于项目安装GPUImage的正确目录中,和/或未单击左侧的复选框使这些搜索路径递归。

我展示了你需要在this answer中设置它的一些屏幕截图,这解释了Core Plot框架的类似内容。同样的原则适用,只需要找到你在哪里安装GPUImage框架。

答案 2 :(得分:5)

我添加“Header Search Paths”的相对路径,但仍然存在“找不到”的错误。

然后,我添加“用户标题搜索路径”的路径,它可以工作。

可以帮助你。

enter image description here

答案 3 :(得分:2)

最后,我意识到KEY WORD是relative! 我把GPUImage源文件放在我的项目根目录中: enter image description here

在我解决问题之前,我添加了标题搜索路径:

$(PROJECT_DIR)/GPUImage/framework

$(PROJECT_DIR)/GPUImage/framework/iOS

并使它们递归,但错误仍然存​​在,所以我将路径更改为:

GPUImage/framework并将其设为递归,然后就可以了。

希望它有所帮助。