Skip to content
  • English
  • Polski
Digital Karabela
Primary Navigation Menu
Menu
  • Strona główna
  • Produkty
  • DevBlog
  • Castle Engine
  • Kurs bash
  • O firmie

Mingw-w64: Jak naprawić błąd „File too big/too many sections”

GCC Logo

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ć.

2019-07-09
Poprzedni wpis: Free Pascal i OpenGL – wyjątek przy zamknięciu okna
Następny wpis: Castle Game Engine wersja stabilna 6.4, czy beta 6.5?

Najnowsze wpisy

  • Wypróbuj moją pierwszą grę – Bricks Color Pick (Free to Play)
  • Jak sprawdzić co spowalnia moją grę?
  • Lazarus 2.0.6 wydany
  • Kompilacja i uruchamianie gier Castle Game Engine na Raspberry Pi
  • Mierzenie upływu czasu w Androidzie

Kategorie

  • DevBlog
  • Linux
    • Kurs bash
    • Narzędzie WoeUSB
  • Programowanie
    • Język D (dlang)
      • Kontrolki DlangUI
    • Język Object Pascal
      • Lazarus (pl)
    • Narzędzie make
  • Promocja
  • Tworzenie gier
    • Castle Engine (pl)
    • Godot
  • Windows 10
    • Narzędzie WoeUSB

Produkty:
Agile Commander

 

 

Digital Karabela – Andrzej Kilijański
76-015 Wyszebórz 32, Poland
https://digitalkarabela.com
Kontakt
Polityka prywatności