Kompilując intensywnie wykorzystujące szablony duże pliki źródłowe, można natrafić na błąd „File too big/too many sections”. W przypadku kompilatora Visual Studio wystarczy użyć flagi /bigobj. Odpowiednikiem w mingw-w64 jest flaga -mbig-obj. Nie jest to jednak flaga kompilatora ale GNU assemblera i to do niego należy ją przekazać.
Z kompilatora flagi asemblera ustawiamy za pomocą -Wa,<flagi po przecinku> np:
g++ -g - Og -std=c++11 -m64 -Wa,-mbig-obj main.cpp
Składnia może wydawać się dziwna ale jest prawidłowa.
Próba dodania flagi -mbig-obj bezpośrednio do g++ spowoduje błąd:
g++: error: unrecognized command line option '-mbig-obj'
Obsługiwane wersje:
Z mojego doświadczenia wynika, że potrzebujesz co najmniej wersji 2.30 GNU binutils. W wersji 2.25 linkowanie potrafi się zawiesić.