[英]Is there a way of structuring precompiled headers in VS that doesn't make my code awkward to build in GCC?
過去,我在VC中使用預編譯的頭文件來加快編譯時間,但通常僅在較小的項目中使用,這些項目基本上只是源代碼的一小部分。 由於VC ++要求所有文件都完全包含相同的標頭,而不管其路徑如何(例如,“ foo.h”而不是“ ../foo.h”),所以當您具有不同的源嵌套目錄時,事情就會變得繁瑣。 如果我所有的文件只是
#include "foo.h"
它有效,但僅當我預編譯了頭文件時才有效。 為了在所有情況下都能正常工作,我需要制作虛擬的foo.h文件
#include "../foo.h"
這開始變得非常荒謬,特別是當您具有多個級別時。
盡管我通常更喜歡Microsoft工具,但我不得不說,在GCC的系統中,將標頭手動編譯為.gch文件似乎比我優越得多。 它的介入性要低得多,並且不需要您在每個編譯單元中都包含所有標頭,如果您是在沒有預編譯標頭的編譯器上構建的,則這是丑陋且緩慢的。
我是否缺少有關VC版本的信息? 我專業從事的大型項目中沒有一個使用預編譯的頭文件,因此我想確保在放棄之前接受公平的修改,只接受更長的編譯時間。
有沒有更干凈的方法可以做到這一點?
謝謝!
是否有可能更新項目的包含路徑,所以無需創建單獨的標頭。 我們使用頭文件Common / Common.h在所有項目中創建預編譯的頭。
如果問題是編譯時間,則可以采用不同的方法來解決:我們從項目中刪除了預編譯的頭文件,因為分布式編譯在沒有頭文件的情況下要快得多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.