簡體   English   中英

有沒有一種方法可以在VS中構造預編譯的標頭,而又不會使我的代碼難以在GCC中構建?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM