2013-07-09 54 views
2

類似的問題適用於我的情況下,沒有真正的答案:CLICK
問題我問這裏之前研究 - CLICK編譯一個非常大的.cpp文件

我使用MinGW64嘗試編譯一個非常大的.cpp文件(>13k行),但我也有權訪問Visual Studio 2010 - 如果有人使用該解決方案,請隨時告訴我。
我已經確定了一個錯誤在裝配階段 - 超過5小時編譯運行方式 -

... too many sections (33396) 
C:\Users\username\AppData\Local\Temp\ccnAocvD.s: Assembler messages: 
C:\Users\username\AppData\Local\Temp\ccnAocvD.s: Fatal error: can't write 
CMakeFiles/source.dir/sourcecode.cpp.obj: File too big 

我目前正在與-Os--param ggc-min-expand=0--param ggc-min-heapsize=4096由我的兩個同事的建議運行編譯現在。

更新:

至於建議的一些人,我只是將分割文件轉換成2的源文件,併爲他們創造一個標題 - 謝謝。

第二次更新:

編制尚未結束(5天!),甚至創造一個頭和文件分割成4級小的了。甚至大家公佈我還是沒能設法編譯此以下建議後 -

最終

這個問題仍然沒有得到解決。

+0

「分開那些互相調用的方法」是什麼問題?這是正常的C/C++文件結構 – Mark

+0

嗯,我有一個名爲'foo'的方法,裏面調用方法'bar' - 如果我把'foo 'file1.cpp'和'file2.cpp'中的條出現編譯錯誤。 – baibo

+3

對我來說,13K線似乎並不大。你確定這不是你的文件做一些奇怪的事情 - 例如包括同一個文件遞歸地永遠,或類似的東西? –

回答

1

不確定GCC,但是您是否嘗試過使用VisualStudio中該特定文件的/bigobj標誌?
我對大文件有同樣的問題,它實際上解決了這個問題。所以值得一試。

從MSDN:

默認情況下,一個目標文件可以容納多達65536(2^16)尋址部分。無論指定哪個目標平臺都是如此。/bigobj將該地址容量增加到4,294,967,296(2^32)

更多關於此here