2011-10-25 120 views
1

我有一個C++項目(GNU風格,帶有Makefile),我想使用XCode作爲我的IDE,因爲我想使用自動完成的Clang功能和現場檢測問題。XCode 4:靜態分析頭文件

爲此,我創建了一個新項目 - >命令行工具,然後只導入所有文件。如果我繼續編輯.cpp文件,則XCode會檢測到活動問題(如果我編寫僞代碼,則會出現錯誤)。但是,這同樣不適用於我的.h文件。有趣的是,它似乎工作,如果我#include這些頭文件在我的一個.cpp文件。

我該如何解決這個問題,而不必包含來自源文件的頭文件? 另外,我不確定這種創建項目(命令行工具)的方式是否正確。我真的只想使用XCode進行自動完成和問題檢測,我不想通過XCode構建它(運行「make」足夠好)。

回答

1

只需爲您的項目創建一個「翻譯」文件即可。這基本上是一個.c,.cpp,.m等文件,其中包括你想索引的頭文件。

潛在的問題是,Xcode確實沒有足夠的上下文來索引世界(或其導航到的任何文件)。標題的單數索引表示不正確。它可能看起來很愚蠢,但是當你考慮它時,這是有道理的,因爲每個目標都有不同的構建設置,單數翻譯不能正確應用這些設置。 (基本上,所有東西都是基於當前項目的構建設置編制的),但是這在很不平凡的項目中尤其棘手,並且非常不可用,尤其是在具有不同構建設置的項目中。例如:它會應用錯誤項目的前綴頭部,或者不知道如何正確構造包含圖形,這樣只會在頭部(在某些情況下)引發錯誤。

對此的一個有益的副作用是,在真正啓動完整構建之前,您的翻譯文件可用於對包含的文件進行快速非正式檢查。實際上,爲了這個目的,我在庫中有翻譯文件(並驗證依賴/包含是否正確)。

如果你真的不喜歡翻譯文件,你可以跳回到Xcode 4.0或嘗試MacVim的clang_complete。