iOS:澄清不同的搜索路径
XCode构建设置中有三种不同的搜索路径:
- 框架搜索路径
- 标题搜索路径
- 图书馆搜索路径
任何人都可以澄清这些路径的作用以及它们的用途吗?
框架搜索路径 :除了系统框架路径之外,还在哪里搜索框架 ( .framework
包)。 在iOS开发中使用不多,官方没有开发人员iOS框架。
在Mac开发中,如果将第三方框架拖到项目中,它会自动设置。 否则,只需将其设置为保存框架的容器目录。
在xcconfig
文件中,您使用此变量:
FRAMEWORK_SEARCH_PATHS = "/path/to/frameworks/container/directory"
标题搜索路径 :除系统路径外还搜索头文件( .h
文件)的位置。 通常,如果您使用第三方库,则需要它。 将其设置为您具有头文件的目录。 如果使用目录来包含标题(例如: #import "mylibrary/component.h"
),请将其设置为父目录。
在xcconfig
文件中,您使用此变量:
HEADER_SEARCH_PATHS = "/path/to/headers/container/directory"
库搜索路径 :除系统路径外还搜索库文件的位置。 如果将库( .a
文件)拖到项目中,Xcode将自动设置它。 要手动设置,请使用库所在的目录。
在xcconfig
文件中,您使用此变量:
LIBRARY_SEARCH_PATHS = "/path/to/libraries/container/directory"
这三个都可以包含一个带有引号的路径列表,用空格分隔。
这些用于搜索不在系统搜索路径中的Frameworks,Header文件或库(如QTKit.Framework,标准C ++头文件等)。
我最常见的用法是在我的代码中使用boost头库(* .hpp)文件我将相对路径“../lib/Boost/1.46.1”添加到Header Search Path。
我发现在项目级别而不是在每个目标中添加它更好。 这样,目标inheritance了这个,如果我更新boost的版本,它只需要在一个地方更改。