在Qt中编译巨大的头文件时,mingw"太多部分"错误

Mos*_*osi 8 c++ qt compiler-errors

我试图在Qt(win7)上用mingw32(491_32)编译exprtk.hpp文件(https://exprtk.codeplex.com/).在编译期间,我给出了以下错误消息:

debug\main.o:-1: error: too many sections (35325)
Run Code Online (Sandbox Code Playgroud)

我注意到exprtk.hpp文件很大(> 32000行).我一直在尝试编译器上的优化标志,但它没有帮助eighter.如果有人帮助我,我将不胜感激...问候,

小智 5

您可以通过添加编译标志-flto -Wl,-allow-multiple-definition,并且可以添加-fuse-linker-plugin

-Wa,-mbig-obj不从事x86/32bits建筑工作(仅x64


You*_*uka -2

如此巨大的仅标头代码已经是糟糕的设计,我宁愿建议使用另一个库,例如muParser

\n

您的问题已经在其他线程中讨论过,例如this

\n
\n

正如您已经注意到的,将 /bigobj 传递给 Microsoft 编译器\n会导致它输出最多包含 2^31 个部分的 munged COFF 格式,\n这“对任何人来说都应该足够了”。

\n

我已经使用 MinGW-w64 测试了这个新选项并且它有效。您需要将 -Wa,-mbig-obj 传递给 gcc 以选择加入大对象(-Wa 表示将此选项传递给汇编器)。\xe2\x80\x93 弗朗西斯·加格恩\xc3\xa9

\n
\n