2013-03-20 58 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項目的框架文件夾中。