2011-05-30 24 views
3

除此之外,我會想象一個Visual C++解決方案旨在涵蓋給定產品的所有源代碼文件。但是,由於「附加包含目錄」和內置的C++功能可以包含絕對路徑和相對路徑,因此可以包含不屬於解決方案一部分的文件(從標準C++頭文件開始)。如何找出哪些包含的文件不是當前VC++解決方案的一部分

這可能發生錯誤和故意。但是,爲了保持依賴關係在控制之下,並且很好地概述了哪些文件是產品的源代碼以及哪些文件是內置的Visual Studio文件,如果有方法可以確定哪些包含不是當前解決方案

見下面的例子:

  1. C:/Dev/Projects/Project-A/Project-A.vcproj
  2. C:/Dev/Projects/Project-A/Project-B.vcproj
  3. C:/Dev/Projects/Project-A/Project-C.vcproj
  4. C:/Dev/Projects/Project-A/Project-D.vcproj

如果創建一個溶液,將其僅包含項目-A,和項目-B,沒有什麼防止項目-A包括來自下項目-C項目-d文件。這意味着如果我想分發這個解決方案,我可能會忽視Project-C和Project-D。

我們可以讓VC++給出關於源代碼文件的警告,這些文件不是解決方案的明確部分 - 當然還有標準的C++頭文件?或者至少提供最終包含在最終庫/可執行文件中的完整文件列表?

在此先感謝!

回答

1

不屬於項目一部分的包含文件通常會自動放置在解決方案資源管理器的項目的「外部依賴性」文件夾中。

+0

這是非常好的知道,謝謝。剛剛瞭解到,在VS 2005中(我使用),此功能不起作用,因此:http://support.microsoft.com/kb/820990 – Nick 2011-05-30 07:57:33

+0

剛剛檢查w/VS 2010和外部依賴關係文件夾似乎工作正確。 – Nick 2011-05-30 14:38:50

2

您可以使用/showIncludes -switch顯示所有包含的文件。

除此之外,我不認爲有一種自動的方法來防止包含某些文件。你只需要注意它。

+0

非常好,謝謝!/showIncludes開關似乎只輸出擴展的#include「....」路徑,相對於引用文件而言,這是相對大部分時間。有沒有辦法把它擴展到絕對路徑? – Nick 2011-05-30 06:54:03

+0

@user:我所知道的沒有。 – 2011-05-30 07:01:54

+1

超過15代表 - 可以終於upvoteü:) – Nick 2011-06-01 07:49:22

相關問題