2014-02-28 20 views
0

我在這裏有一個愚蠢的問題。我試圖在.xconfig文件中設置標題搜索路徑,而Xcode似乎不喜歡$(SRCROOT)變量。我應該如何正確引用它?如何在.xconfig文件中引用SRCROOT變量

這是我現在該怎麼辦呢(不工作 - 沒有在建的設置顯示出來):

HEADER_SEARCH_PATHS = "$(SRCROOT)/../../someFolder" 

這也不起作用:

HEADER_SEARCH_PATHS = "${SRCROOT}/../../someFolder" 

這工作,所以一切別的似乎是確定:

HEADER_SEARCH_PATHS = "../../someFolder" 

當我通過構建設置面板它也適用好吧設置變量。

回答

0

您的第一個版本在語法上是正確的(xcconfig似乎使用tcsh樣式進行變量擴展)。

你的第二個版本,使用大括號來擴展變量,如在bash中使用它也應該起作用。

您的第三個版本很脆弱,因爲它使用相對路徑。您應該創建絕對路徑,通過$(SRCROOT)或其他給定的路徑。

您應該檢查變量是否按照您的預期通過在Xcode的構建設置中檢查來擴展。

還要確保xcconfig文件已正確關聯到項目和目標:在項目編輯器的「信息」選項卡的「配置」部分。

+0

嗯,問題是,無論我把xconfig文件更新在生成設置正確,所以一切都必須正確連線。但是,當我把$(SRCROOT)的構建設置中的字段變爲空白 - 所以它不能正常擴展,我不知道爲什麼。 – konrad

+0

@konrad您可以嘗試以下操作:使用您自己的變量,例如'PRJ_HEADER_SEARCH_PATHS = ...'這個變量然後單獨顯示在Build Settings中。檢查路徑是否正確。然後,在標題搜索路徑中,使用該變量,例如, '$(繼承)$(PRJ_HEADER_SEARCH_PATHS)' – CouchDeveloper

+0

好吧,我想我已經釘了它,但我不能說我理解這個機制。構建設置繼承如下所示:Default> Config.File> Project> Resolved。我已經刪除了一切,包括。 '從項目級別'$(繼承)',這不知何故導致SRCROOT不能正確擴展,即使在更高的水平。把它解決問題。有趣的事實:任何其他字符串「bill-gates」確實有效,只是變量擴展沒有,所以我認爲我弄糟了語法。 Xcode確實是一個很好的工作。無論如何,答案是正確的 - 我只是問了一個錯誤的問題:-) – konrad

相關問題