2008-10-28 108 views
3

在Xcode中,我可以在項目設置編輯我的預處理宏。我想創建一個引用環境變量的宏。基本上,我希望能夠在我的代碼中引用$ SRC_ROOT。我目前在我的宏中有:Xcode的預處理宏

SRC_ROOT=${SRC_ROOT} 

但它不工作。

回答

20

在Xcode中建立的設置,你不是實際上指的是一個環境變量的值。相反,您指的是構建設置的值。其語法是Makefile風格的$(SETTING_NAME),而不是上面使用的shell風格${SETTING_NAME}

所以,你想要做的就是添加

SRC_ROOT="$(SRCROOT)" 

預處理宏構建設置。

作爲額外的獎勵,如果你知道你的宏不會影響的,而不是你應該使用預處理宏在預編譯頭,而不是未使用預處理宏預編譯前綴文件的內容。

這樣,你可以提高你的項目,甚至是不同項目的不同目標之間的預編譯的前綴頭(由pch文件中定義)的共享。 Technical Note 2190: Speeding up your Xcode Builds更詳細地介紹了這一點:如果您在多個項目中使用相同的前綴文件名和內容,並使用相同的構建設置構建,則可以顯着提高構建性能,因爲Xcode將識別何時可以重用現有預編譯的前綴文件。

+0

謎語我這個雖然:如果我修改我的iPhone應用程序的項目(沒有目標)的設置,搜索每個配置「預處理宏」 ......我看到一個「GCC 4.2 - 預處理」部分和「預處理宏」等。人的Ad-hoc,發行和分銷CONFIGS ......但沒有用於調試和分析CONFIGS - 儘管後兩者確實有三個用戶自定義設置:GCC_C_LANGUAGE_STANDARD(C99),GCC_WARN_ABOUT_RETURN_TYPE(YES),並GCC_WARN_UNUSED_VARIABLE(YES)。 – 2010-02-08 22:57:34