2013-07-09 25 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