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的版本,它只需要在一个地方更改。