如果找不到GPUImage框架的GPUImage.h头,我该怎么办?
我使用GPUImage框架创建了一个示例应用程序来执行凹凸失真。 我将此框架添加到我的应用程序中,但我看到以下错误
未找到词法或预处理器发出’GPUImage.h’文件。
我已将-ObjC
标志-ObjC
到Other Linker Flags,但我仍然看到此错误。 如何解决这个问题并让我的应用程序编译?
将GPUImage框架添加到XCode项目可能会很棘手。 所以我已经添加了详细的逐步说明w / images如何做到这一点。
静态编译方法(详细解决方案,所以我们不要搞砸)
这是静态编译方法。 基本上我们将使用./build.sh文件编译框架。 只需将其添加到我们的XCode项目,然后配置XCode以正确使用它。
- 从Github下载GPUImage并解压缩(或者只是克隆它)。
- 转到终端中的
GPUImage
文件夹 -
运行./build.sh
注意:这将为mac上的所有sdks编译并创建现成的二进制文件。
-
build.sh创建一个名为build的文件夹并生成已编译的二进制文件并将其转储到以下文件夹: Release-iPhone , Release-iPhoneOS , Release-iphonesimulator等文件夹。
- 对于iPhone使用Release-iphone (这也适用于模拟器)。
- 将Release-iphone复制(而不是拖放)到您的XCode项目的根目录,以便我们拥有框架的本地副本。
-
现在iPhone将Release-iphone拖放到您的XCode项目中。 确保选中“复制到…”选项。
注意:
- 此Release-iphone文件夹包含两个子文件夹: include和lib
- include文件夹包含所有标题.h文件
- lib文件夹包含名为libGPUImage.a的已编译二进制版本文件
- 我们现在需要简单地配置XCode以使用.h和.a文件。**
-
在“项目资源管理器”>“项目名称”下的“ 目标” >“选择构建阶段”>“ 使用库展开链接二进制”中选择项目
-
将libGPUImage.a添加到Link Binary With Libraries部分。 您可能需要右键单击libGPUImage.a,然后在Finder中打开 ,最后拖放它。
-
虽然我们在这里,还添加以下GPUImage的依赖框架/库CoreMedia,CoreVideo,OpenGLES,AVFoundation,QuartzCore到Link Binary With Libraries部分
-
现在,让我们配置.h标头。
-
在项目浏览器>项目名称下选择项目目标 >选择构建设置>,然后键入搜索路径以查看搜索路径部分。
-
单击值字段打开标题搜索路径 。
-
将lib文件夹拖放到该弹出窗口。 注意:如果显示绝对路径,请将其更改为$(SRCROOT)/ path / to / lib / 。 (您应该拥有与您的xcode项目相关的框架,请参阅步骤6)。
-
对图书馆搜索路径也重复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
并使其递归,然后它工作。
希望能帮助到你。