【发布时间】:2012-04-30 10:47:12
【问题描述】:
我创建了一个示例应用程序来执行凹凸失真,使用 GPUImage framework。我将此框架添加到我的应用程序中,但我看到以下错误
找不到词法或预处理器问题“GPUImage.h”文件。
我已将 -ObjC 标志添加到其他链接器标志,但我仍然看到此错误。如何解决这个问题并让我的应用程序编译?
【问题讨论】:
标签: objective-c ios filter
我创建了一个示例应用程序来执行凹凸失真,使用 GPUImage framework。我将此框架添加到我的应用程序中,但我看到以下错误
找不到词法或预处理器问题“GPUImage.h”文件。
我已将 -ObjC 标志添加到其他链接器标志,但我仍然看到此错误。如何解决这个问题并让我的应用程序编译?
【问题讨论】:
标签: objective-c ios filter
将 GPUImage 框架添加到 XCode 项目可能会很棘手。因此,我添加了详细的分步说明和图片说明如何操作。
静态编译方法(详细的解决方案,以免我们搞砸了)
这是静态编译方法。在这基本上我们将使用 ./build.sh 文件编译框架。只需将其添加到我们的 XCode 项目中,然后配置 XCode 以正确使用它。
GPUImage文件夹运行 ./build.sh
注意:这将为您 mac 上的所有 sdk 编译并创建即用型二进制文件。
build.sh 创建一个名为 build 的文件夹并生成编译后的二进制文件并将它们转储到以下文件夹:Release-iPhone、Release-iPhoneOS、Release-iphonesimulator 等文件夹。
现在将 iPhone 拖放 Release-iphone 到您的 XCode 项目中。确保选中“复制到..”选项。
注意:
在项目浏览器中选择您的项目 > Targets 下的项目名称 > 选择 Build Phases > 展开 Link Binary With Libraries
将 libGPUImage.a 添加到 Link Binary With Libraries 部分。您可能需要右键单击 libGPUImage.a,然后在 Finder 中打开,最后将其拖放。
在我们做的时候,还要添加以下 GPUImage 的依赖框架/库 CoreMedia、CoreVideo、OpenGLES、AVFoundation、QuartzCore 到 Link Binary With Libraries 部分
现在,让我们配置 .h 标头。
在项目资源管理器中选择您的项目 > Targets 下的项目名称 > 选择 Build Settings > 并输入 search paths 以查看 search paths 部分。
通过单击值字段打开标题搜索路径。
将 lib 文件夹拖放到该弹出窗口。注意:如果显示绝对路径,请将其更改为看起来 $(SRCROOT)/path/to/lib/。 (您应该拥有与您的 xcode 项目相关的框架,请参阅第 6 步)。
对于 库搜索路径 也重复 11 和 12。
附加提示:您可以将 .h 文件添加到 Library Search Paths 或 Headers Search Paths,您可以将它们设为 递归 >。我有一个名为 Dependencies 的主根文件夹,其中保存了所有依赖项,例如 MySDK 框架,包括 Release-iPhone。而且我在依赖项(根文件夹)只有一个搜索路径,并使其递归。
【讨论】:
您是否按照project page 上自述文件中的所有说明进行操作?从安装说明:
您还需要找到框架标头,因此在您的 项目的构建设置将标题搜索路径设置为相对 从应用程序到 framework/ 子目录的路径 GPUImage 源目录。使此标头搜索路径递归。
如果您看到上述错误,则表示您没有将 Header Search Paths 指向相对于您的项目安装 GPUImage 的正确目录,和/或没有单击左侧的复选框使这些搜索路径递归。
我在this answer 中展示了一些你需要去哪里设置它的屏幕截图,它解释了 Core Plot 框架的类似内容。同样的原则也适用,只是你需要找到你安装 GPUImage 框架的位置。
【讨论】:
我在“Header Search Paths”中添加了相对路径,但是仍然出现“未找到”的错误。
然后,我将路径添加到“用户标题搜索路径”,它就可以了。
可以帮到你。
【讨论】: