Portál AbcLinuxu, 10. května 2025 02:23
Dobrý den, pánové.
Mám takový malý problém. Kompilace rtorrent-0.8.4 skončí s touto chybou:
2.0 -I/usr/local/lib/sigc++-2.0/include -I/usr/local/include -MT dht_manager.o -MD -MP -MF .deps/dht_manager.Tpo -c -o dht_manager.o dht_manager.cc
g++: Internal error: Ukončen (SIGTERM) (program cc1plus)
Please submit a full bug report.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
make[3]: *** [dht_manager.o] Error 1
make[3]: Leaving directory `/root/src/TORRENT/rtorrent-0.8.4/src/core'
Přitom třeba překlad rtorrent-0.7.5 proběhne bez problémů.
Příslušné knihovny (libsigc++-2.2.3 a libtorrent-0.12.4)
jsou přeložené a nainstalované. Distribuce je Slackware 11.0.
Čím je způsobena chyba uvedená výše?
Zkoušel jsem to na Lennym a kompilace proběhla bez problémů.
$ g++ --version g++ (Debian 4.3.2-1.1) 4.3.2
Jenže v téhle distribuci je gcc 3.4.6. Nemůže to být tím?
Stačí gcc přeložit s -g, pak pustit překlad a když to ICEne tak si vypsat stacktrace, otevřít si zdrojáky g++, trochu se v nich zorientovat, povrtat a chybu odstranit.
Me se podobna vec stavala kdyz jsem kompiloval velky soubor. GCC si allokovalo prilis mnoho pameti a OOM killer ho ukoncil.
Pomuze pridat vic pameti nebo zvetsit swap.
Kouknete se taky na flagy ggc-min-heapsize a ggc-min-expand, ktere urcujim jaky zpusobem bude gcc vyuzivat heap pamet.
Myslíte, že 320MB ram a swap 500 MB je malo? Spíš si myslím, že rtorrent od 8.0+ nejde přeložit pod gcc 3.4.6.
Verzi 7.9 jsem bez problémů přeložil a 8.2 už nešla. Jinak chyba popsaná nahoře byla způsobena jak jinak,
než mezi PC a židlí :=). Pomíchaly se mi trošku verze knihoven. Po opravě problém vyřešen.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.