如何在xcode中命名库?如何导航到特定库?

时间:2016-03-07 06:04:25

标签: objective-c iphone xcode

我收到一条错误,上面写着 - “ld: - 找不到-lpods-AppName-DZNWebViewController的库” 我的问题不是如何解决这个错误,而是要了解xcode在哪里寻找这个库?这个库需要有一个目录吗?下面是我的项目工作区的快照。 image of my project files

1 个答案:

答案 0 :(得分:0)

enter image description here

使用CocoaPods维护库依赖性

支持CocoaPods的库将为您提供安装库所需的命令。在这种情况下,它是

  

pod' DZNWebViewController'

如果这不起作用,您可以随时手动编辑项目设置。

手动维护库依赖性

即使使用CocoaPods,您仍然可以自己编辑位置。您可以使用“搜索路径”部分中的项目设置为Xcode提供三种类型的路径以搜索文件:

enter image description here

  • 框架搜索路径是指预编译的框架
  • 图书馆搜索路径指的是您在项目中包含的任何库,以便从您的代码进行访问。这些通常是具有' .a'的预编译文件。扩展。
  • 标题搜索路径通常与图书馆搜索路径一起使用,告诉Xcode标题位于给定库的位置。

Xcode提供的错误会告诉您哪个搜索路径设置及其出现问题的路径:

  • ld:指的是图书馆搜索路径
  • fd:是指框架搜索路径
  • hd:是指标题搜索路径

要提供完全限定的搜索路径,您可以使用Xcode提供的预设占位符来开始路径。

以下两个占位符通常引用相同的位置,因此默认为同义词:

  • $(PROJECT_DIR) - 这是指源代码所在的项目根目录
  • $(SRCROOT) - 这是指源根目录

要完成路径规范,您需要使用' /',提供目录的完整路径,如:

  

$(SRCROOT)/ some_dir / some_other_dir

要提供递归搜索路径,只需在路径末尾添加两个星号,如:

  

$(SRCROOT)/ some_dir / some_other_dir / **

要在其中一个Searh路径设置中添加多个路径,只需将它们用空格分隔:

  

$(SRCROOT)/ some_dir / some_other_dir $(SRCROOT)/ some_dir2 / some_other_dir3

这提出了一个显而易见的问题:如果路径包含空格怎么办?

如果您的路径包含空格,请将路径用双引号括起来,如:

  

" $(SRCROOT)/某些目录/其他一些目录/" " $(SRCROOT)/某些dir2 /其他一些dir3 /"

另一种选择是通过在每个空格前面加一个反斜杠来逃避路径中的空格(在这种情况下,你不能使用引号)。但是,这使得它更难以阅读,因此更难以调试,尤其是当存在多个长路径时:

  

$(SRCROOT)/ some \ dir / some \ other \ dir / $(SRCROOT)/ some \ dir2 / some \ other \ dir3 /