2013-03-20 33 views
29

从加入框架头我想用一些框架,工作就像glewcg,所以我手动添加包含在Xcode的

通过右键所需的框架,我的项目,点击项目 - >添加文件到...

并选择正确的框架。问题是,当我尝试包含头文件时,Xcode不能找到它们中的任何一个。我希望这幅画将有助于了解:

enter image description here

和:

enter image description here

给出的误差为glew框架,但它也发生在Cg

正如您在左侧看到的,添加了所需的框架。

任何想法,我可以如何包括这些标题?

尝试手动添加头文件后,我得到了一个架构错误:

enter image description here

我不知道这是否是应该的样子。 谢谢!

+0

我有同样的问题,并通过设置,我必须设置“构建设置 - >框架搜索路径”到$(SRCROOT)(假设你的框架在你的项目目录的根目录)。 – 2014-04-12 19:24:39

回答

50

在开始之前,删除框架以及您尝试使其工作时添加的所有文件。

然后,您必须在目标的Build Phases中添加框架。然后进入Link Binary With Libraries并从那里选择你的框架。

这应该做到这一点。您的标题应该在每个#import directive. 之后自动完成。如果它不起作用(有时会发生),那么我可以为您提供其他步骤。

额外的步骤:

转到您的项目设置,在构建设置:

  • 完成Framework Search Paths与框架的路径
  • 做同样的User Header Search Path

然后,它应该工作。如果没有,您需要在#import指令中添加标题的完整路径。例如:

#import "/path/to/my/header.h"


苹果的文档available here状态:

  1. 在项目导航器中,选择 项目
  2. 选择目标
  3. 选择 '构建阶段' 选项卡
  4. 打开“链接二进制与图书馆” 扩展
  5. 点击“+”按钮
  6. 选择框架
  7. (可选)拖放添加 框架拖放到“框架”组
+0

@ Itzik984我已添加其他步骤。你的框架位于'/ Library/Frameworks'中吗? – Jean 2013-03-20 23:10:15

+0

它们在'/ System/Library/Frameworks'下面,这样可以吗?还是应该将它们移到那里? – Itzik984 2013-03-20 23:13:39

+0

@ Itzik984我想这是可以的。但是你可能需要告诉Xcode哪个文件夹是框架,哪个文件夹是头文件。我最近有类似的问题。Xcode不会像以前那样使用/ Library/Frameworks中的链接框架进行编译。实际上,它找不到标题。在#import指令中添加完整路径解决了它。后来,我将该文件夹添加到* User Header Search Paths *,因此我不需要使用完整路径。 – Jean 2013-03-20 23:17:53

3

对于那些在添加框架后自动完成失败的人。

我用来添加框架,通过去Build Phases并采取Link Binary with Libraries选项。现在在XCode 6.1中,虽然项目构建良好,但XCode中的自动完成功能无法正常工作。

所以需要做的事情是:

  1. Project NavigatorLink Binary with Libraries删除已添加的框架和也。
  2. 在XCode中通过简单的FileAdd Files to选项添加框架。

自动完成将开始工作。

+1

我想包含一个我自己构建的框架。出于某种原因,将它添加到构建阶段中的项目链接二进制与库部分不起作用,但只是通过添加文件到项目添加框架工作。这次真是万分感谢。 (投票) – 2015-12-17 21:10:15

+0

谢谢!这是唯一的解决方案...只是想知道为什么总是很难做这些明显的事情...... – stepik21 2017-10-09 17:00:48

5

在我来说,我已经加入Framework Search Paths为目标,但它应该被添加到Project

enter image description here

而且Always Search Users Path应该yes

2

在我的情况下,外部框架已经被下载了Windows并添加到项目中。然后它被转移到OSX上,在那里构建Xcode项目并且外部框架没有正确加载。我想这是因为Windows将框架文件夹更改为常规文件夹,而OSX则遇到了麻烦。

对我来说,解决方案就是简单地下载带有OSX的框架,并将其拖入XCode项目的框架文件夹中。