預處理程序是否有辦法檢測當前 翻譯單元中的代碼是否使用(或正在創建)預編譯頭文件?
---
我現在面臨的實際問題是,我在 項目中通過預編譯幾乎所有頭文件來濫用PCH。
這意味着沒有任何 可以從#includes獲得清除依賴關係管理,編譯時間也很糟糕。 實際上,每次更改都會觸發完全重建。
該應用程序是一個很大的方法,只是一次性修復它,一些老傢伙拒絕 ,以相信預編譯每一個都是不好的。我將不得不首先證明它。
所以我必須一步一步做,並確保我的更改不會影響編譯舊PCH方式的 代碼。
我的計劃是如果在PCH.h中找不到PCH.h,並且在有空的時候處理非PCH版本。檢測預編譯頭文件
#ifdef USES_PCH
#include "PCH.h"
#elif
// include only whats needed
#endif
我想,以避免在命令行定義USES_PCH和手動不是很優雅與/ Y保持在 同步的是,除此之外,將是一個痛苦。有很多配置 和模塊來跟隨和許多不遵循項目默認值的文件。
當然預處理器已經知道它是否應該是生成或使用預編譯頭。它不需要檢測任何東西。你是否想要問是否正在處理的*代碼可以檢測到它,就像使用一些'ifdef'命令一樣? – 2009-08-25 12:45:41
是的,我想做一個#ifdef __USES_PCH或類似的東西 – grimner 2009-08-25 13:26:34
你想解決這個問題的實際問題是什麼? – peterchen 2009-08-27 03:58:27