2

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

我的问题是文件存在时出现“找不到文件”错误:

在此处输入图像描述

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

4

1 回答 1

0

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

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

在此处输入图像描述

请注意,如果您导入为<somelib/somefile.h>,并且“标题搜索路径”中的路径以“包含”结尾,例如“/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" 添加到标头搜索路径。

于 2018-05-22T19:48:20.670 回答