Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam
Mam problem z kompilacją pliku interfaces.c, który jest generowany przez glade-2, do kompilacji tego pliku potrzebne jest 1,8GB ram`u (problem tymczasowo rozwiązałem zwiększajać swap`a do 4GB:), gcc v3.3.5 wywala błąd:
cc1: out of memory allocating 515991120 bytes after a total of 27336704 bytes
make: *** [interface.o] Błąd 1
Dodam jeszcze ze owy plik zajmuje ok 900KB, cała aplikacja po skompilowaniu niewiele ponad 2MB, Nieliniowy wzorst zapotrzebowania na ram zauważyłem przy dodawaniu w glade kolejnych stron(aktualnie jest ich 8) do widget NoteBook, na kazdej z takich strona jest umieszczonych spora liczba widget-ów.
Troche mnie ta sytuacja niepokoi, ze względu że plik interface.c to dzieło glada, i podzielenie go na mniejsze pliki wiązało by sie z całkowitą rezygnacją z glada i mnóstwem dodatkowej roboty. Szukam jakiegoś normalnego rozwiązania bo zwiększanie pamięci swap nie wydaje sie być przyszłościowe, będe wdzięczny za jakiekolwiek rady.
[/quote]
Offline
Wydaje mi się że takie zapotrzebowanie na pamięć, przy kompilacji takiego pliku, nie jest normalne.
Albo to jest błąd w glade albo w gcc.
Czy ten plik interfaces.c jest stworzony przez Ciebie?
Jesli tak to polecam przniesienie sie z gtk na wxwidgets, jak dla mnie jest sporo wygodniejsze.
Maksymalny rozmiar alokowanej pamieci mozna zwiekszyc z 4 go 64GB trzeba wkomilowac w kernel opcje high memory (czy jakos tak).
Offline
Plik interfaces.c jest tworzony przez glada znajduje sie w nim implementacja GUI aplikacji, ja nigdy w nim nic nie zmieniałem. Sama aplikacja zawiera spora ilość widgetów i jest dość rozbudowana jesli chodzi o GUI a przeniesienie czegoś takiego na wxwidgets wiązało by sie dla mnie z ogromna ilością pracy. Budowniczy interfejsów glade miał ułatwić mi życie, a stało sie odwrotnie czyżby nadawał on sie tylko do małych programików?
Offline
Spróbuj inną wersje gcc.
Zupgrejduj tez pakiet libgtk-dev i "podobne". Może uzywasz starszych w których jest jakis bug. Zobacz tez czy na innym systemie to się skompiluje.
Offline
Własnie dzisiaj chciałem spróbować z nowszym gcc napotkałem problemy apt pobrał 200MB upgradu (paczki testing/stable) i na koniec wywalił coś że nie może usunąć e2fsprogs ale moge spróbować z opcją force, nie ryzykowałem. powinienem sie czegoś obawiać są jakieś przeciwskazania? Zaznaczam że zalezy mi na czasie i jestem początkującym userem debiana.
Na komputerze domowym (dystrybucja tylko stable) postanowiłem zrobić upgrade gcc i innych potrzebnych bibliotek po walce z kilkoma niespełnionymi zależnościami ostatecznie apt z opcja f wywalił z systemu większość pakietów dev:(.
Tutaj rodzi sie moje drugie pytanie, warto mieszać paczki róznych dystrybucji (zwłaszcza chodzi o takie pakiety jak gcc, libc, cpp) jesli tak to jak robić to szybko i skutecznie.Czy lepiej przejść na pakiety tylko jednej dystrybucji testing a może unstable?
Offline
Moim zdaniem lepiej jest niemieszac dystrybucji, wyjątkiem jest sytuacja gdy potrzebujemy jjakiegos programu który jest w innej a nie ma w naszej dystrybucji.
Offline
a co mam zrobić z kompem z pracy, niechciałbym żeby mi tam coś padło, jest problem ze zrobieniem update wywala cos na temat e2fsprog spotkałeś sie z tym może?
Offline
Jaką masz dystrybucje i do jakiej chcesz upgrejdowac, lub jakie chcesz wymieszac ?
Offline
Mam mieszaną w /etc/apt/source.list są wersje testowe i stabilne i chciałbym zrobić upgrade ale jest problem:
631 zaktualizowanych, 0 nowo zainstalowanych, 0 do usunięcia i 662 nie zaktualizowanych.
.....
E: To uruchomienie programu będzie wymagało tymczasowego usunięcia istotnego pakietu e2fsprogs z powodu pętli konfliktów/pre-zależności. Często nie oznacza to nic dobrego, ale jeśli naprawdę chcesz to zrobić, włącz opcję APT::Force-LoopBreak.
E: Internal Error, Could not early remove e2fsprogs
Na tym komputerze pracje więc nie zaryzykowałem.
Offline
Time (s) | Query |
---|---|
0.00012 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00090 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.117.158.124' WHERE u.id=1 |
0.00077 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.117.158.124', 1732909614) |
0.00042 | SELECT * FROM punbb_online WHERE logged<1732909314 |
0.00084 | DELETE FROM punbb_online WHERE ident='18.189.143.1' |
0.00081 | DELETE FROM punbb_online WHERE ident='3.145.196.150' |
0.00083 | SELECT topic_id FROM punbb_posts WHERE id=21122 |
0.00008 | SELECT id FROM punbb_posts WHERE topic_id=2631 ORDER BY posted |
0.00097 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=2631 AND t.moved_to IS NULL |
0.00006 | SELECT search_for, replace_with FROM punbb_censoring |
0.00457 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=2631 ORDER BY p.id LIMIT 0,25 |
0.00122 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=2631 |
Total query time: 0.01163 s |