[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Problem beim Linken mit plib-1.8.3



On 04.Jul 2005 - 23:47:38, Rainer Koenig wrote:
> Hi,
> 
> also, so langsam verzweifle ich hier. Ich habe ein frisch installiertes 
> Sarge mit allem was das Herz begeht, außer dem FlightGear Atlas. Sollte
> kein Problem sein, den mal schnell zu bauen dachte ich mir und habe mir 
> die Sourcen runtergeladen. 
> 
> ./configure hat mich dann schon belehrt, daß nur bei der Verwendung der
> Version 2.95 von gcc und g++ das Vorhandensein von Simgear richtig erkannt
> wird. Problematisch wird es aber dann beim make für Atlas.

Das mit gcc-2.95 ist kein gutes Zeichen....

> Compilieren der Sourcen ist kein Problem, aber beim Linken von Atlas
> kracht es:
> 
> Atlas.o(.text+0x8fc2): In function `show_cb(puObject *)':
> /usr/include/plib/pu.h:531: undefined reference to `puValue::getIntegerValue(void)'
> 
> So, und in /usr/include/plib/pu.h steht unter Zeile 531:
> int  getValue ( void ) { return getIntegerValue () ; } /* Obsolete ! */
>
> Wenn ich obige Fehlermeldung aber richtig interpretiere gibt es in der plib
> kein Symbol puValue::getIntegerValue. 

Richtig interpretiert. Ist die plib aus Debian und eine C++-Lib? Dann
hast du sowieso ausgespielt. gcc-2.95 und 3.2 haben inkompatible
C++-Binaer-Interfaces und du kannst keine Programme mit gcc-2.95
gegen Libaries linken die mit gcc-3.2 gebaut wurden und umgedreht. Ich
nehme an das daher die undefined reference kommt.

Sprich: Entweder neuere Version besorgen die mit gcc-3.2 kompiliert
werden kann, oder aber woody installieren.

> Wo liegt mein Denkfehler? Bin ich zu unfit in C++? Oder fehlt an der plibpu
> wirklich was? 

Tja, wenn die Bibliothek uebersetzt werden kann, ohne dass getValue
jemals dort benutzt wird ist das gut moeglich das da was fehlt. Der
Zusatz "Obsolete" erweckt den Eindruck das diese Funktion nicht
verwendet werden soll. Mit anderen Worten: Dein Atlas braucht ne aeltere
plib. Dennoch gilt oben gesagtes: gcc-2.95-er Programme zusammen mit
gcc-3.2-Bibliotheken kompilieren geht nicht.

Andreas

-- 
Lady Luck brings added income today.  Lady friend takes it away tonight.



Reply to: