我们正在大量使用的boost ::序列化和模板一般。 一切似乎很顺利。
除此之外,我们已经打在我们的Windows碰钉子建立。 这似乎导致目标文件过大的问题。 我们使用的MinGW / MSYS使用g ++ 4.7.0。
c:/mingw/bin/../lib/gcc/mingw32/4.7.0/../../../../mingw32/bin/as.exe: CMakeFiles/source.dir/sourcecode.cpp.obj: 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
大师谷歌透露了这一消息存档, http://sourceforge.net/mailarchive/forum.php?thread_name=CA%2Bsc5mkLvj%3DW9w2%3DsY%3Dc_N%3DEwnsQuPDEX%3DiBcbsbxS3CuE_5Bg%40mail.gmail.com&forum_name=mingw-users
在这里面,它表明其他人打几乎相同的障碍。 它确实点到了Visual Studio中的一个选项/bigobj
选项这似乎做什么,我们都需要。 然而,我们无法移动到Visual Studio。
一个建议是--hash尺寸添加到汇编器选项。 这并没有帮助。
如果我没有记错的话,问题就在于,对象文件,有在他们2 ^ 16项的限制。 实际上,根据错误信息,我敢说,这是一个签署2 ^ 16项,但这是花生。 该/bigobj
为Visual Studio选项会更改为2 ^ 32。 邮件列表的结果不知道gcc的等效选项。 而且谷歌的结果似乎并没有相关这一点。
在这一点上,我们将不得不重构我们的代码(啊)来绕过这个限制。 但我仍然关注的是,沉重的模板,我们可以一次又一次地遇到问题(我们已经有三个源文件运行到它)。
所以我的问题是这样; 有没有GCC相当于微软/bigobj
选项? 有没有办法,我还没有找到第三种选择?