在Xcode9.3上找不到文件

时间:2018-05-22 18:52:57

标签: objective-c xcode sdk xcode9.3

我目前正在使用预编译的sdk(Parrot SDK3:http://developer.parrot.com/docs/SDK3/#ios)在Xcode上的Swift中处理项目(单视图应用程序)。

我的问题是我找不到"文件"错误,而文件存在:

enter image description here

我尝试导入的标头是用Objective-C编写的(但我想在ObjC文件中导入这些标头)。 我注意正确编写头文件的路径并避免循环导入。经过大量的清理/构建和尝试了很多方法之后,我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

Xcode尝试在“搜索路径”列表的帮助下查找头文件(.h)。 您可以在此列表中拥有多个搜索路径,例如,如果您在程序中有#import <a.h>,并且在搜索路径列表中有路径“/ asd”和“/ qwe”,它将尝试查找标题as“/ asd / ah”或“/ qwe / ah”(它同时尝试)。

您可以在Xcode项目构建设置中添加自定义路径。有一个“搜索路径”部分,你有“标题搜索路径”。如果您的库在项目中,那么在路径中使用$(SRCPATH)变量很有用,它会扩展到您的项目根文件夹,如下所示:

enter image description here

请注意,如果导入为<somelib/somefile.h>,并且“标题搜索路径”中的路径以“include”结尾,例如“/ some_path / include”,则标题必须位于“/ some_path /” include / somelib / somefile.h“,有时候不是真的,因为人们常常把头文件放在”include /“里面,而不是”include / somelib /".

解决此问题的一种方法是使用自定义名称创建指向库“include”文件夹的符号链接,然后将该符号链接的父目录添加到标题路径中。

例如,如果您创建一个空目录“libs / include /”,并且已将库文件放在“libs / dist / libARDiscovery /.../include”中,那么您可以创建一个符号链接“libs /” include / libARDiscovery“指向”lib / dist / libARDiscovery /.../ include“,然后将”$(SRCROOT)/ libs / include“添加到标题搜索路径中。