iOS:澄清不同的搜索路径

时间:2011-12-01 14:31:29

标签: ios xcode ios-frameworks build-settings

XCode构建设置中有三种不同的搜索路径:

  • 框架搜索路径
  • 标题搜索路径
  • 图书馆搜寻路径

任何人都可以澄清这些路径的作​​用以及它们的用途吗?

2 个答案:

答案 0 :(得分:25)

框架搜索路径:除系统框架路径外,还要搜索frameworks.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" 

所有这三个都可以包含一个带引号的路径列表,用空格分隔。

答案 1 :(得分:0)

这些用于搜索不在系统搜索路径中的Frameworks,Header文件或库(如QTKit.Framework,标准C ++头文件等)。

我最常见的用法是在我的代码中使用boost头库(* .hpp)文件我将相对路径“../lib/Boost/1.46.1”添加到页眉搜索路径。

我发现在项目级别而不是在每个目标中添加它更好。这样,目标继承了这个,如果我更新boost版本,它只需要在一个地方更改。