1.问题描述
相信大家经常会遇到这种情况:
在接触一个第三方的SDK时,往往先去下载其官方开发者网站提供的Sample,
然后Demo下载下来直接运行编译后,往往会遇到以下类似的编译错误
项目中,对应的.h
文件找不到
2.原因分析及对应解决方案
(1)项目中缺少对应的文件
有的时候我们下载的Demo里面虽然有第三方SDK
的调用,但是却没有包含第三方SDK
的文件
我们需要去下载对应的SDK
等文件,将其导入到项目中
(2)Header Search Paths没有设置
添加正确的Header Search Paths
3.问题解决步骤-项目示例
下面我就以我今天所用到的Vuforia SDK
为例,以图文方式讲一下这类问题的通用解决方案
SDK
以及Sample
下载地址:
https://developer.vuforia.com/downloads/sdk
(1)首先,我也是将下载好的Sample直接编译运行
就直接报了以下的错误
( 这里我用的是ARVR Sample )
这个时候我在项目里搜索,没有找到对应的.h文件,
于是将之前下载的SDK
文件里面的整个build
文件夹导入到工程中,
并勾选
- Copy items if needed
- Add to targets ARVR
build
文件夹所在项目中的位置,以及其子目录结构如下,其中,前面error所指向的.h
在Vuforia
文件夹下
(2)这个时候我继续编译,仍然出现同样的错误
因为还没有设置Header Search Paths
我们依次点击
项目 —> TARGETS —> Build Settings —> 在搜索栏下输入header search paths
输入$(PROJECT_DIR)/build/include
这个时候再编译运行就成功了
其中$(PROJECT_DIR)
表示你项目的根目录
4.总结
以后大家遇到此类问题,大致可以从上面两个方面入手,
- 要么是项目中没有此类文件,通过其他渠道找到对应文件,并包含到项目中
- 要么是
Header Search Paths
没有设置正确,根据你文件在项目中的路径,对应设置
如果按上面的情况还没有解决的,那就是其他的可能性,由于个人问题已经解决,没去具体深入了.
如果大家有遇到麻烦的,或者有新的解决方案的,欢迎交流!