是否可以通過編程檢測(並打印出)C++頭文件包含在哪裏?如何檢測包含標題的位置從
我有這樣一個標題:
// DeprecatedHeader.h
__pragma(message ("DeprecatedHeader.h is deprecated - include NewHeader.h instead."))
#include "NewHeader.h"
正如你可以看到,編譯器是MSVC,但我有宏包。 GCC是受歡迎的,但如果不可能的話,我會在Windows上啓用'技巧'。
但是我正在尋找的是像
"AnyOtherFile.cpp was including DeprecatedHeader.h, please include NewHeader.h instead."
編輯輸出:要清楚爲什麼我要這樣:警告編譯器會引發已經幫助了很多:代碼沒有打破,但捅人們改變包括。問題:它可能會責怪錯誤的「傢伙」,因爲你可以通過另一個頭部拉入這個頭部。我的目標是責怪錯誤的標題,而不是編輯單位。
豈不是可以用做此簡單的文本搜索你的代碼庫? – Philipp
在生成文件之前運行一個腳本將是最簡單的 – enjoylife
一個詞:'/ showincludes'。 http://msdn.microsoft.com/en-us/library/hdkef6tk.aspx – avakar