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

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

未找到词法或预处理器发出’GPUImage.h’文件。

我已将-ObjC标志-ObjC到Other Linker Flags,但我仍然看到此错误。 如何解决这个问题并让我的应用程序编译?

将GPUImage框架添加到XCode项目可能会很棘手。 所以我已经添加了详细的逐步说明w / images如何做到这一点。

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

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

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

    注意:这将为mac上的所有sdks编译并创建现成的二进制文件。

  4. build.sh创建一个名为build的文件夹并生成已编译的二进制文件并将其转储到以下文件夹: Release-iPhoneRelease-iPhoneOSRelease-iphonesimulator等文件夹。 在此处输入图像描述

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

    注意:

    • Release-iphone文件夹包含两个子文件夹: includelib
    • include文件夹包含所有标题.h文件
    • lib文件夹包含名为libGPUImage.a的已编译二进制版本文件
    • 我们现在需要简单地配置XCode以使用.h和.a文件。**
  8. 在“项目资源管理器”>“项目名称”下的“ 目标” >“选择构建阶段”>“ 使用库展开链接二进制”中选择项目

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

  10. 虽然我们在这里,还添加以下GPUImage的依赖框架/库CoreMedia,CoreVideo,OpenGLES,AVFoundation,QuartzCoreLink Binary With Libraries部分 在此处输入图像描述

  11. 现在,让我们配置.h标头。

  12. 在项目浏览器>项目名称下选择项目目标 >选择构建设置>,然后键入搜索路径以查看搜索路径部分。

  13. 单击值字段打开标题搜索路径

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

  15. 图书馆搜索路径也重复11和12。

在此处输入图像描述 其他提示:您可以将.h文件添加到库搜索路径标题搜索路径 ,您可以将它们设置为递归 。 我有一个名为Dependencies文件夹的主根文件夹,我保留了所有依赖项,如MySDK-framework,包括Release-iPhone。 我只在Dependencies(根文件夹)中有一个搜索路径并使其递归

您是否按照项目页面上的自述文件中的所有说明进行操作? 从安装说明:

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

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

我在这个答案中展示了你需要去哪里设置它的截图,这解释了Core Plot框架的相似之处。 同样的原则适用,只需要找到安装GPUImage框架的位置。

我添加了“标题搜索路径”的相对路径,但仍然存在“未找到”的错误。

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

可以帮到你。

在此处输入图像描述

最后,我意识到KEY WORD是relative !我将GPUImage源文件放在我的项目根目录中: 在此处输入图像描述

在我解决问题之前,我添加Header Search Paths是:

$(PROJECT_DIR)/GPUImage/framework

$(PROJECT_DIR)/GPUImage/framework/iOS

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

GPUImage/framework并使其递归,然后它工作。

希望能帮助到你。

Interesting Posts