2013-02-15 58 views
10

好的,這是我試過的。兩個目標,兩個具有相同名稱的頭文件如何針對正確的目標使用每個頭文件?

我有兩個獨立的目錄IRL頭文件。他們的名字相同,但位於兩個不同的位置。

我想只包含每個目標的相關頭文件。可以說爲了便於解釋頭文件被稱爲「Config.h」。

所以我必須:

$ {} PRODUCT_DIR /Header1/Config.h

$ {} PRODUCT_DIR /Header2/Config.h

這些文件出現在Xcode的LHS以及兩個不同的組中(Heade r1和Header2指向IRL文件夾)。

所以現在我需要做的就是讓Xcode從每個目標的正確文件夾中選擇正確的文件夾。

目標1

目標2

我曾嘗試添加路徑User Header Search Paths每個目標,但它仍然選擇了錯誤的。我也嘗試切換「總是搜索用戶路徑」,這似乎也沒有效果。

所以我的問題是,這是因爲他們在項目目錄?還是因爲它們在LHS的文件管理器中位於Xcode中,所以Xcode會將它們複製到構建文件夾中?

奇怪的是它似乎是從字母姓氏的文件夾選擇頭文件...

在Xcode中的以前的版本我相信你會選擇哪一個標頭複製到構建夾。

無論如何..有誰知道我可以如何解決這個問題,以便我可以讓它爲目標選擇適當的頭文件?

非常感謝。

+0

我不確定,但條件導入呢? – 2013-02-15 18:14:02

+0

這是備份計劃。 :)但它會添加更多的步驟比這種方式。我相信這應該是可能的。 – 2013-02-15 18:14:41

+0

1.其實我不明白爲什麼你有「標題搜索路徑」的問題。嘗試從項目中排除這些標題,並且不要使用「**」遞歸搜索路徑。 2.通常我使用不同的「include」和「ifdef else」。因此,你可以添加任何全局變量到任何目標,並檢查你必須包括(例如:「ifdef target1 #include」header1.h「else #include」header2.h「endif;)。這取決於你的要求。 – Jlexyc 2013-02-18 11:28:44

回答

8

我遇到的問題是2倍:

  1. 您需要從項目中移除頭文件。如果他們在Xcode中,在文件管理器中,那麼他們將自動包含在項目中。

  2. 您需要在「用戶標題搜索路徑」中使用相對路徑到您的文件夾。我正在使用${PROJECT_DIR}/path/to/header/folder這給了正確的道路,但似乎沒有正常工作。更改條目到./path/to/header/folder而不是工作正常。

+0

如果我不能從項目中刪除標題,因爲我正在構建一個框架並且它們是公共標題? – 2016-09-14 01:35:02

0

我在1個proyect 40餘頭,在XCode中8 最好的解決方案,我認爲最好的辦法是改變以下標記4個目標:

Always Search user Paths 

爲yes全是對我來說很好: enter image description here

相關問題