簡體   English   中英

框架標頭無法在Xcode中找到自己的標頭文件?

[英]A framework header cannot find its own header files in Xcode?

在Xcode中,假設有一個名為Foo的框架。 Foo.framework/Headers文件夾中,有File1.hFile2.h文件。 頭文件File1.h通過以下指令包括File2.h

#include <File2.h>

Foo框架是對C ++庫的重新打包,該庫並非專門針對Mac。

現在假設我有一個鏈接到Foo框架的項目。 它具有通過以下指令包含File1.h的文件MyFile.mm

#import <Foo/File1.h>

現在,當我嘗試編譯MyFile.mm ,它總是失敗,因為找不到File2.h 我如何在不修改Foo框架的頭文件的情況下進行編譯和運行?

出於好奇,實際的框架是從Max源代碼樹中獲取的Taglib框架包裝版本。 我嘗試包含的文件是<taglib/mp4.tag>並且由於mp4tag.h而導致編譯包含該文件的.mm文件總是失敗,因為mp4tag.h包含了<tag.h>而前綴中沒有<taglib/...>包含指令。 該錯誤不僅存在於此頭文件中,而且在大量頭文件中也存在類似的問題,因此修改所有這些include語句並非易事。 所有必需的“缺失”頭文件實際上都存在於框架的Header子目錄中。

我試圖在我的應用程序中使用Taglib,盡管我能夠將Taglib作為帶有頭文件的框架進行編譯並將其添加到我的應用程序中,但由於上述問題,我似乎無法使該應用程序進行編譯。

有人有指針嗎?

謝謝。

我認為File1.h應該說:

#include "File2.h"

嘗試檢查Xcode中的“始終搜索用戶路徑”選項。

以下是修復此問題的步驟:

  1. 將代碼更改為File1.h中的代碼,以使用“ #include”。
  2. 在框架項目/默認目標/構建階段,設置“復制文件”階段,並添加File1.h和File2.h。
  3. 確保“復制文件”階段位於“編譯”階段之前。

這應該可以解決該問題,因為框架將使用與使用框架的代碼完全相同的方式來引用文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM