2010-04-08 51 views
1

我試圖重用.PCH使用下面的方法,以加快構建:預編譯頭.pch文件對機器敏感嗎?

  1. 使用/ YC上stdafx.cpp創建.PCH文件到文件夾
  2. 排除stdafx.cpp項目,並修改鏈接選項

它在我的機器上的成功,但失敗的另一個,得到了錯誤信息:錯誤C2011:「***」:「結構」類型重新定義

所以首先我要詢問.pch文件是否對機器敏感?其次,上述方法可行嗎?

謝謝!

+0

您可能想要指明編譯器......假設您使用Visual C++在您(和其他人)上強制使用的那個討厭的「stdafx」頭文件,我假定使用Visual C++。 – 2010-04-08 06:37:28

+0

這的確是VC++;錯誤代碼是可識別的。 – MSalters 2010-04-08 07:48:14

回答

3

預編譯頭可機專用高達到Visual Studio 2008 SP1(從here):

預編譯的頭文件存儲編譯的 「狀態」長達 某一點,而該國 信息可以在 中重複使用,後續編譯調用到 顯着增加build 吞吐量。在過去15年中,我們的 編譯器已將預編譯的 標頭持久保存到磁盤,並將它們直接重新加載到虛擬內存中,並具有99.999%的可靠性和相當的性能收益。然而,權衡, 然而,在我們的架構 是脆弱程度。

由於PCH文件本身包含 內部指針,它必須在其中創建在虛擬 存儲器完全相同的地址被加載 。

+0

是的,但與C2011錯誤無關。 – MSalters 2010-04-08 07:53:40