Xcode项目,导入了,之前已经在别处编译通过的,SwiftXMPP的源码,后,编译出错,找不到头文件:
XMPPFramework/Vendor/facebook-ios-sdk/vendor/OCHamcrest/Source/Tests/Collection/IsInTest.m:12:9: ‘OCHamcrest/HCIsIn.h’ file not found
如图:
![XMPPFramework Vendor facebook-ios-sdk vendor OCHamcrest Source Tests Collection IsInTest.m OCHamcrest HCIsIn.h file not found](https://www.crifan.com/files/pic/uploads/2016/08/XMPPFramework-Vendor-facebook-ios-sdk-vendor-OCHamcrest-Source-Tests-Collection-IsInTest.m-OCHamcrest-HCIsIn.h-file-not-found.png)
但是诡异的是,此处已经去添加对应的搜索路径了:
![has added XMPPFramework search path](https://www.crifan.com/files/pic/uploads/2016/08/has-added-XMPPFramework-search-path.jpg)
然后此设置,在之前的项目中,也是生效的,可以找到头文件的。
不知道为何此处,虽然设置了头文件和库文件搜索路径后:
Header Search Paths和Library Search Paths
为何还是搜不到头文件。。。
搜:
xcode set search path still not find header file
参考:
去设置 Framework Search Paths试试
![set Framework Search Paths](https://www.crifan.com/files/pic/uploads/2016/08/set-Framework-Search-Paths.jpg)
问题依旧。
然后发现好像是:
此处的代码是:
IsInTest.m中的:
#import <OCHamcrest/HCIsIn.h>
但是HCIsIn.h所在的路径是:
XMPPFramework/Vendor/facebook-ios-sdk/vendor/
下面的:
OCHamcrest/Source/Library/Collection/HCIsIn.h
而不是:
OCHamcrest/HCIsIn.h
所以估计找不到
所以去改为:
//#import <OCHamcrest/HCIsIn.h> #import <HCIsIn.h>
试试:
好像就编译通过了。。。
![seem found HCIsIn can compile](https://www.crifan.com/files/pic/uploads/2016/08/seem-found-HCIsIn-can-compile.png)
所以:此处不是搜索路径设置有误,而是头文件中路径有误。
但是后面会出现类似的,很多的头文件都找不到。。。
一个个改,累屎了。
-》
后来的后来,终于搞懂了:
原来是,原先的SwiftXMPP项目可以正常编译,没有出现此处一堆的头文件找不到的问题,
是因为:SwiftXMPP项目,虽然导入了对应的XMPP的库:XMPPFramework
但是:
该文件夹下面的一堆的子文件夹,用于测试的,demo等等,和库源码本身没有关系的文件,都删除掉:
-》所以你到项目的目录下面去看的时候,是有这些无用的,多余的文件的
![see some useless facebook files](https://www.crifan.com/files/pic/uploads/2016/08/see-some-useless-facebook-files.jpg)
-》但是在Xcode项目中,却看不到这些文件了:
即:Xcode项目中facebook-ios-sdk文件夹下面都是空的:
![facebook-ios-sdk is empty](https://www.crifan.com/files/pic/uploads/2016/08/facebook-ios-sdk-is-empty.jpg)
-》因为其把不用的文件和文件夹都是:
删除了reference引用-》从项目本身删除掉,不用编译了,而不是物理上删除了这些文件
![delete unused facebook-ios-sdk files](https://www.crifan.com/files/pic/uploads/2016/08/delete-unused-facebook-ios-sdk-files.jpg)
![only remove references for facebook ios sdk files](https://www.crifan.com/files/pic/uploads/2016/08/only-remove-references-for-facebook-ios-sdk-files.jpg)
![for all xmpp framwork related file references delete](https://www.crifan.com/files/pic/uploads/2016/08/for-all-xmpp-framwork-related-file-references-delete.jpg)
以及:module也删除引用。
如此,两个项目此时的,所包含的库的文件,才一样:
![the two project files look same](https://www.crifan.com/files/pic/uploads/2016/08/the-two-project-files-look-same.jpg)
如此,再去编译看看。
然后最后终于编译成功了。
转载请注明:在路上 » [已解决]Xcode中导入SwiftXMPP后编译出错:XMPPFramework/Vendor/facebook-ios-sdk/vendor/OCHamcrest/Source/Tests/Collection/IsInTest.m:12:9: ‘OCHamcrest/HCIsIn.h’ file not found