2012-08-31 54 views
1

我正在運行Xcode 4.4.1,這是一個很不好的問題。我可以開始新的簡單的C++命令行項目並編譯好。但是,當我從左窗格中刪除源文件並拖放新的.cpp/.h文件並點擊編譯時,舊的「舊」代碼仍會編譯並顯示在提示中。我是從VS 2010轉移而來的,我知道這對我來說必定是一個愚蠢的鏈接監督。我如何簡單地從其他地方添加源文件並僅通過添加到項目進行編譯?xCode編譯舊的C++代碼

我知道這是一個noob問題,但我環顧四周,失去了一點耐心。

謝謝大家。

+1

我也看到這個問題,並想知道如何解決它,而不是建立乾淨和/或退出。重命名文件時偶爾會發生這種情況。 – tadman

+0

嗯,所以我不是唯一有點瘋狂的人。 VS 2010接手處理這個很好。 –

+3

嘗試清理你的項目 - **項目** - > **清理**。這應該夠了吧。 – Linuxios

回答

2

Xcode的行爲非常奇怪,左側顯示的文件可能不會反映真實的文件層次結構,如果出現某些內容,則不表示它將被編譯。

你必須使用右側面板中的檢查器手動檢查每個文件,看它是否被添加到構建,或更方便地檢查「Project.xcodeproject/project.pbxproj」或類似的東西。它是一個XML文件,它保存有關您添加到項目中的所有文件,文件夾和項目的信息,包括如何處理這些文件。

該文件生成爲人類可讀的,Xcode輕輕地添加了很多評論:)我認爲你必須檢查第一部分,它聲明所有資源,有一個屬性說明你想要做什麼文件。

我希望這將幫助你:)


編輯:

您可以檢查一個文件被選中並顯示「文件檢查器」列入爲當前的目標(alt + cmd + 1)。信息位於「目標會員」部分,確保至少有一個項目被選中。

關於project.pbxproj,相關部分是PBXBuildFile,它必須是第一個。 每個條目是對構建步驟的引用,並指示使用isa字段(PBXBuildFile)和什麼對象(fileRef)必須完成的操作。

fileRef與下面的組層次結構中的文件以及PBXFileReference部分中的文件相匹配。它是PBXFileReference部分,它指示它是什麼類型的文件(使用lastKnownFileType屬性)。

+0

我會考慮所有這一切;這裏非常有用的信息。當你有空時,隨時檢查/測試。另外什麼是用項目創建的.1文件? –

+0

我添加了一些信息。我希望這可以幫助你:)而且我從來沒有見過這樣的「.1」文件,至少不在Xcode項目中,所以我無法爲此提供幫助。文件裏面有什麼? – Geoffroy