2016-04-01 72 views
-1

我將C++解決方案與多個項目從VS2010遷移到VS2012。 項目具有對路徑設置爲系統變量的庫的引用。面向Visual Studio 2012中的IntelliSense問題,包含系統變量

應用程序正在編譯並運行。但Intellisense報告庫中所有符號和標題的錯誤。在解決方案資源管理器中的外部依賴項節點中,它沒有顯示第三方庫的頭文件。 具有硬編碼和相對路徑的頭文件不存在此問題。

右鍵單擊Header聲明打開頭文件時,它通過條帶化環境變量值顯示項目中指定的所有路徑。例如如果包含路徑是「C:\ QT \ Includes; .. \ .. \ VISLIB \ Inc; $(PROBAL_SHT_LIB)\ V18.05 \ Inc」,那麼它將顯示消息「File'XX.h」not found in .......構建系統路徑: C:\ QT \ Includes; .. \ .. \ VISLIB \ Inc; \ V18.05 \ Inc。 並帶$(PROBAL_SHT_LIB)。

還注意到,如果我設置了新的系統變量,那麼它不會顯示在「宏」中。或者代碼沒有通過VS2012編譯。使VS2012識別這個變量。我需要重新啓動PC。

這與VS2010工作正常。

回答

0

您應該知道intellisense所使用的前端/解析器與實際編譯器所使用的不同。 它們並不總是同步更新,它們通常具有不同級別的功能完整性和不同的錯誤。因此,intellisense抱怨真正的編譯器能夠很好地處理完美有效的代碼並不罕見。 當然,這並不是很好 - 但這是事實,但沒有人能做到,但微軟可以爲此做任何事情。

+0

完全同意..但我需要使它適用於一些經常變化的庫,因此需要了解新功能並更改簽名。否則開發時間會大大增加。 –

+0

@Abhay Joshi如果你對intellisense不滿意,你應該跟微軟談談 - 他們是唯一能夠改進它的人(正如我的回答所述)。 –