Hi!
Ha a fordító ilyen hibával áll meg:
"cc1.exe: out of memory allocating 65536 bytes after a total of 18167400 bytes"
, akkor tényleg kevés a memória, vagy van erre valamilyen gyógymód?
- 7813 megtekintés
Hozzászólások
Milyen fordító, milyen kód, milyen hardware?
- A hozzászóláshoz be kell jelentkezni
Milyen OS, milyen disztro?
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Mi a háttérképed?
--------------------------------------
Unix isn't dead. It just smells funny.
- A hozzászóláshoz be kell jelentkezni
És milyen színű a számítógép?
- A hozzászóláshoz be kell jelentkezni
Az OS is fontos lehet, pl. 32 bites Windows rendszernel nyugok lehetnek a nagy memoriat igenylo forditasoknal, ugyanigy problemas lehet, ha Linuxon van valami memoriakorlat bevezetve, etc... Nem veletlen, hogy ezeket vegigkerdezzuk.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
""cc1.exe: out of memory allocating 65536 bytes after a total of 18167400 bytes""
szerinted milyen OS? ;)
- A hozzászóláshoz be kell jelentkezni
DOS?
- A hozzászóláshoz be kell jelentkezni
Szerintem Linux meg wine, mert valami idiota kornyezetet hasznal. Nem veletlen kerdezek ilyesmit, hidd el. Es meg az sem mindegy, hogy milyen Windows, ha az.
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Nem vagyok nagy specialista, pláne nem Win alatt, de azt sejtem, hogy a kódod lehet a ludas. Hisz maga a fordítás igényelt túl sok memóriát.
Én azt nézném, hogy a kódban nincs-e valami disznóság, mondjuk trükkös #define-ok, amik kibontva valami nagy, fordítási időben generálandó feladatot adnak a fordítónak, esetleg rekurzív #include -láncok.
Avagy a C kód, ami fordul nem kézzel íródott, hanem egy program hibásan generálta. (valamikor szörnyű régen Fortran->C konverzió okozott ilyen agybajokat nekem.)
- A hozzászóláshoz be kell jelentkezni
Elnézést kérek mindenkitől, amiért nem voltam jelen!
A fordító a gcc-4.7.0 djgpp portja, az os Windows 7.
Hasonló hibaüzenettel már korábban is találkoztam, de nem jöttem rá, hogy mi okozza. Ezért kérdezem. :)
A kód a libcaca (http://caca.zoy.org/files/libcaca/libcaca-0.99.beta18.tar.gz), amit nem tudtam lefordítani.
- A hozzászóláshoz be kell jelentkezni
DJGPP-vel foglalkoztam anno, lehet, hogy a Win7 nem tetszik neki. Illetve a cwsdpmi-vel próbálhatsz esetleg swap-et adni neki, mintha lehetne.
Meg más gcc, caca verziókkal próbálkozhatsz.
Meg melyik file fordításába hal bele?
- A hozzászóláshoz be kell jelentkezni
>Meg melyik file fordításába hal bele?
Melóhelyen próbáltam, most itthon nem tudom megnézni, mivel nincs Windows-om.
Ez a cwsdpmi swap jó ötletnek tűnik, kösz a tippet!
- A hozzászóláshoz be kell jelentkezni
GCC 4.7.0 March 22, 2012
Biztos, hogy a legfrissebb már-éppen-talán-nem-teljesen-béta gcc verziót kell windows-on tesztelned? Mert ugye ezt nem windows-on fejlesztik, úgy kell áthekkelnie valakiknek windows-ra...
- A hozzászóláshoz be kell jelentkezni
Mazochista vagyok.
- A hozzászóláshoz be kell jelentkezni
A djgpp még csak nem is wines, hanem dos-os.
Ha a dos nem cél, akkor mingwt ajánlanám.
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee." -- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Naiv kerdes: vajon miert hasznal valaki egy DOS-os forditot, amikor tonnanyi windowsos van? Esetleg DOS-ra fordit?
--
Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal
- A hozzászóláshoz be kell jelentkezni
Hogy a bús retekbe lehet ilyen ótvar módon hibát leírni? Teljes szoftverkörnyezet és fordítási napló megadása lenne a minimum. A hibaüzenet egyébként egy rahedli helyen szerepel a neten. Na mindegy.
Annyit már sikerült összebányászni a többi hozzászólásból, hogy a libcaca fordítása szállt el.
Tömören:
(1) A gcc-ben 2003-2004 óta ismerik, de nem tudják megjavítani azt a hibát, hogy nagyméretű array initializer-nél zabálja a memóriát. Lásd:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14179
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12245
(2) Windows alatt egyszerűen nem jut ennyi memória a djgpp-nek. Nemtom miért, ez van, mások is belefutottak már.
http://newsgroups.derkeiler.com/Archive/Comp/comp.os.msdos.djgpp/2007-1…
http://stackoverflow.com/questions/4283259/gcc-2-03-gives-cc1-exe-out-o…
hrgy84 felvetette fentebb, hogy esetleg 32 bites windows-t futtatsz; egyelőre nem látok megerősítést (Ennek is a topiknyitóban kellett volna szerepelnie.)
(3) A libcaca linkelt verziójában:
$ du -h --apparent-size libcaca-0.99.beta18/src/texture.h
371K libcaca-0.99.beta18/src/texture.h
A header-ben egy internal linkage / static storage duration / konstans tömböt definiálunk. Az inicializációs listában 64K elem szerepel, jó eséllyel ezen fújja fel magát a gcc.
A header-t egyetlen file nyalja be, a "cacademo.c". Auto-fossal nem vagyok hajlandó foglalkozni (vagyis rávenni a Makefile.am-et és társait, hogy ne próbálják ezt a file-t lefordítani), úgyhogy cseréld ki a "cacademo.c" tartalmát arra, hogy
int main(void) { return 0; }
és próbáld újra a fordítást.
(Vagy kísérletezz az -O kapcsolóval.)
- A hozzászóláshoz be kell jelentkezni
++: Hogy a bús...
esetleg a gcc opciok közül kivenni: -pipe, -j, -l
- A hozzászóláshoz be kell jelentkezni