View previous topic :: View next topic |
Author |
Message |
sebas86 Guru
Joined: 01 May 2005 Posts: 568 Location: Szczecinek / Szczecin
|
Posted: Mon Jul 25, 2005 8:04 pm Post subject: [solved][emerge] bonobo błąd kompilacji |
|
|
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 . Ź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 |
|
|
qermit Veteran
Joined: 02 Feb 2005 Posts: 1032
|
Posted: Mon Jul 25, 2005 9:57 pm Post subject: |
|
|
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 |
|
|
sebas86 Guru
Joined: 01 May 2005 Posts: 568 Location: Szczecinek / Szczecin
|
Posted: Tue Jul 26, 2005 5:38 am Post subject: |
|
|
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 |
|
|
sebas86 Guru
Joined: 01 May 2005 Posts: 568 Location: Szczecinek / Szczecin
|
Posted: Wed Jul 27, 2005 10:22 am Post subject: |
|
|
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 |
|
|
sebas86 Guru
Joined: 01 May 2005 Posts: 568 Location: Szczecinek / Szczecin
|
Posted: Wed Jul 27, 2005 12:17 pm Post subject: |
|
|
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) .
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 |
|
|
|
|
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
|
|