Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[solved][emerge] bonobo błąd kompilacji
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Polskie forum (Polish)
View previous topic :: View next topic  
Author Message
sebas86
Guru
Guru


Joined: 01 May 2005
Posts: 568
Location: Szczecinek / Szczecin

PostPosted: Mon Jul 25, 2005 8:04 pm    Post subject: [solved][emerge] bonobo błąd kompilacji Reply with quote

Ten błąd nie powinien mieć miejsca (chyba :?), ale jednak jest...
Code:
bonobo-arg.c: In function `bonobo_arg_to_gtk':
bonobo-arg.c:272: error: syntax error before ',' token
bonobo-arg.c:272: error: syntax error before ')' token
make[2]: *** [bonobo-arg.lo] Błąd 1

Niby błąd w źródłach ale taki chyba by nie przeszedł podczas testów ebulidów :x. Źródła sprawdzałem, wszystko wygląda w porządku, próbowałem robić emerge kilka razy, za każdym razem to samo. Ma ktoś podobny problem?


Last edited by sebas86 on Wed Jul 27, 2005 12:19 pm; edited 1 time in total
Back to top
View user's profile Send private message
qermit
Veteran
Veteran


Joined: 02 Feb 2005
Posts: 1032

PostPosted: Mon Jul 25, 2005 9:57 pm    Post subject: Reply with quote

Może jakaś łatka coś psuje. Kilka razy coś takiego już było :) Spróbuj trochę później emerge sync i jeszcze raz emerge <pakiet>.
_________________
"A co ty masz w swoim LinuXie?" - Dr Qermit
Back to top
View user's profile Send private message
sebas86
Guru
Guru


Joined: 01 May 2005
Posts: 568
Location: Szczecinek / Szczecin

PostPosted: Tue Jul 26, 2005 5:38 am    Post subject: Reply with quote

Hmmm :?, wcześniej już miałem problem z tym pakietem, jednak odłożyłem go na później, a w między czasie był robiony sync portage. Jednak nic na razie nie zaszkodzi zrobić jeszcze raz, a jak się nie da to chyba będę zmuszony ściągnąć binarke :(. Albo spróbuje skompilować wszystko bez łatek, a potem co najwyżej filtrować pojedyńcze łaty.
Back to top
View user's profile Send private message
sebas86
Guru
Guru


Joined: 01 May 2005
Posts: 568
Location: Szczecinek / Szczecin

PostPosted: Wed Jul 27, 2005 10:22 am    Post subject: Reply with quote

Sync portage nie pomógł, przerobienie ebulida też nie (wywaliłem jedyną łatkę jaka była nakładana - coś z gcc4). Rozpakowałem tarbala ręcznie ./configure, make poszło bezbłędnie. Pliki, w którym wywalało błąd są identyczne :-/, rozmiar taki sam, diff czysty. Jedyna różnica w plikach Makefile, ten robiony z ebulida jest stripowany (może dlatego :?) - pewnie dlatego, że mam ustawioną flage dla kompilatora. Zaraz zobaczymy, wywalimy flagę stripowania na poziomie kompilacji może to coś da, w końcu Gentoo i tak chyba stripuje wszystko przy kopiowaniu prawda?

--edit--
Dla pewności moje flagi, może ktoś będzie wiedział czemu to się krzaczy:
Code:
CFLAGS="-Os -march=pentium2 -pipe -fomit-frame-pointer -DNDEBUG -DG_DISABLE_ASSERT"
CHOST="i686-pc-linux-gnu"
CXXFLAGS="-Os -march=pentium2 -pipe -DNDEBUG -DG_DISABLE_ASSERT"
LDFLAGS="-z combreloc"

Za pewne to któraś z flag stwarza problem, bo ręczna kompilacja, nie korzystała z globalnych flag i poszła normalnie, na razie wywaliłem flagę -s ze wszystkich może to coś pomoże.
Back to top
View user's profile Send private message
sebas86
Guru
Guru


Joined: 01 May 2005
Posts: 568
Location: Szczecinek / Szczecin

PostPosted: Wed Jul 27, 2005 12:17 pm    Post subject: Reply with quote

Wreszcie znalazłem przyczyne błędu :). Mianowice te dwie flagi: -DNDEBUG -DG_DISABLE_ASSERT (nie wiem dokładnie, która - usunełem hurtowo bo obie ingerują w kod programu). Gdyby ktoś nie wiedział skąd takie dziwne ustawienia CFLAG i CXX... to tutaj jest wyjaśnienie.

Artykuł dobry, a co do samego błędu to zapewne wynikają z niewłaściwego użycia wspomnianych w artykule funkcji przez programistów biblioteki. Kawałek bezczelnie skopiowanego artykułu z powyższej strony (dla wyjaśnienia) :roll:.
Quote:
'-DNDEBUG -DG_DISABLE_ASSERT' - to tak naprawdę nie są flagi kompilatora, a definicje. Które można potem odczytywać w kompilowanym kodzie. Ot, taki sposób na powiedzenie '#define foo' w linii wywołania kompilatora. Te dwie wartości nie mają z kompilatorem nic wspólnego, ale są związane z tzw. programowaniem asertywnym. Istnieje sobie taka funkcja assert() której może użyć programista. Jest to funkcja "awaryjna" która może programiście w łatwy i czytelny sposób powiedzieć, w której części programu wystąpił jakiś błąd. Użytkownikowi jednak nie jest do niczego potrzebna, no bo co mnie obchodzi w której linijce kodu źródłowego był błąd który spowodował segfault Midnight Commandera czy gpm? Przecież ja mam zamiar tylko tego używać, a nie poprawiać.

Tak więc, trzeba czasami uważać na te flagi - nie tyczy się tylko biblioteki bonobo, jednak na razie nie zauważyłem podobnych przypadków (i mam nadzieję więcej nie oglądać).
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Polskie forum (Polish) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum