Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
DivXripper 0.1.2 will nicht kompilieren

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Sonstiges
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Peter
Gast





BeitragVerfasst am: 23. Jun 2001 15:54   Titel: DivXripper 0.1.2 will nicht kompilieren

Hallo,

ich wollte den vor ein paar Tagen geposteten Kurztip mal testen, jedoch kriege ich bei der Kompilation immer folgende Fehlermeldung:

---------------snip---------------------
convert.o: In function `convertInitOutput(char *)':
/home/pwk/DivXripper-0.1.2/convert.cpp:46: undefined reference to `string_char_traits::copy(char *, char const *, unsigned int)'
/home/pwk/DivXripper-0.1.2/convert.cpp:46: undefined reference to `string_char_traits::move(char *, char const *, unsigned int)'
/home/pwk/DivXripper-0.1.2/convert.cpp:46: undefined reference to `__out_of_range(char const *)'
/home/pwk/DivXripper-0.1.2/convert.cpp:49: undefined reference to `__length_error(char const *)'
convert.o: In function `AttributeInfo::~AttributeInfo(void)':
/usr/include/g++/stl_construct.h(.__malloc_alloc_template<0>::gnu.linkonce.t._S_oom_malloc(unsigned int)+0x1a): undefined reference to `endl(ostream &)'
convert.o: In function `convertInitOutput(char *)':
/home/pwk/DivXripper-0.1.2/convert.cpp:46: undefined reference to `cerr'
/home/pwk/DivXripper-0.1.2/convert.cpp:46: undefined reference to `ostream::operator<<(char const *)'
/home/pwk/DivXripper-0.1.2/convert.cpp:46: undefined reference to `ostream::operator<<(ostream &(*)(ostream &))'
convert.o: In function `AttributeInfo::~AttributeInfo(void)':
/usr/include/g++/stl_construct.h(.BaseError::gnu.linkonce.t.Print(void)+0x19): undefined reference to `cerr'
/usr/include/g++/stl_construct.h(.BaseError::gnu.linkonce.t.Print(void)+0x1e): undefined reference to `ostream::operator<<(char const *)'
convert.o: In function `convertInitOutput(char *)':
/home/pwk/DivXripper-0.1.2/convert.cpp:46: undefined reference to `ostream::operator<<(char const *)'
/home/pwk/DivXripper-0.1.2/convert.cpp:46: undefined reference to `cerr'
/home/pwk/DivXripper-0.1.2/convert.cpp:46: undefined reference to `ostream::operator<<(char const *)'
/home/pwk/DivXripper-0.1.2/convert.cpp:46: undefined reference to `endl(ostream &)'
/home/pwk/DivXripper-0.1.2/convert.cpp:47: undefined reference to `cerr'
/home/pwk/DivXripper-0.1.2/convert.cpp:47: undefined reference to `ostream::operator<<(char const *)'
/home/pwk/DivXripper-0.1.2/convert.cpp:47: undefined reference to `ostream::operator<<(char const *)'
/home/pwk/DivXripper-0.1.2/convert.cpp:47: undefined reference to `ostream::operator<<(ostream &(*)(ostream &))'
/usr/lib/libaviplay.so: undefined reference to `ostream::operator<<(unsigned long)'
/usr/lib/libaviplay.so: undefined reference to `iostream::ios virtual table'
/usr/lib/libaviplay.so: undefined reference to `ostream::operator<<(long)'
/usr/lib/libaviplay.so: undefined reference to `ios virtual table'
/usr/lib/libaviplay.so: undefined reference to `ostream::operator<<(void const *)'
/usr/lib/libaviplay.so: undefined reference to `ostream::operator<<(double)'
/usr/lib/libaviplay.so: undefined reference to `string_char_traits::eos(void)'
/usr/lib/libaviplay.so: undefined reference to `istream::ios virtual table'
/usr/lib/libaviplay.so: undefined reference to `strstream::ios virtual table'
/usr/lib/libaviplay.so: undefined reference to `dec(ios &)'
/usr/lib/libaviplay.so: undefined reference to `strstreambuf::init_dynamic(void *(*)(unsigned int), void (*)(void *), int)'
/usr/lib/libaviplay.so: undefined reference to `streambuf::~streambuf(void)'
/usr/lib/libaviplay.so: undefined reference to `ostream::operator<<(int)'
/usr/lib/libaviplay.so: undefined reference to `ostream::operator<<(unsigned int)'
/usr/lib/libaviplay.so: undefined reference to `strstreambuf::~strstreambuf(void)'
/usr/lib/libaviplay.so: undefined reference to `ostream::ios virtual table'
/usr/lib/libaviplay.so: undefined reference to `string_char_traits::length(char const *)'
/usr/lib/libaviplay.so: undefined reference to `streambuf::streambuf(int)'
/usr/lib/libaviplay.so: undefined reference to `ostream::write(char const *, int)'
/usr/lib/libaviplay.so: undefined reference to `strstreambuf::str(void)'
/usr/lib/libaviplay.so: undefined reference to `hex(ios &)'
/usr/lib/libaviplay.so: undefined reference to `string_char_traits::assign(char &, char const &)'
/usr/lib/libaviplay.so: undefined reference to `cout'
/usr/lib/libaviplay.so: undefined reference to `strstreambuf virtual table'
/usr/lib/libaviplay.so: undefined reference to `strstreambase::ios virtual table'
collect2: ld returned 1 exit status
make: *** [DivXripper] Error 1


Hat jemand eine Idee, wo der Hase begraben ist ?
 

Sebastian Ude
Gast





BeitragVerfasst am: 23. Jun 2001 19:02   Titel: Re: DivXripper 0.1.2 will nicht kompilieren

Hat da wer seine libstdc++ mit "strip" allen Symbolen beraubt ?
 

Peter
Gast





BeitragVerfasst am: 23. Jun 2001 22:15   Titel: Re: DivXripper 0.1.2 will nicht kompilieren

root@notch:/home/pwk/DivXripper-0.1.2 > rpm -qi libgpp
Name : libgpp Relocations: (not relocateable)
Version : 2.95.3 Vendor: SuSE GmbH, Nuernberg, Germany
Release : 52 Build Date: Fre 11 Mai 2001 17:27:07 CEST
Install date: Sam 23 Jun 2001 23:06:41 CEST Build Host: amdsimb.suse.de
Group : Development Source RPM: gcc-2.95.3-52.src.rpm
Size : 1830736 License: GPL
Packager : feedback@suse.de
Summary : C++-libraries
Description :
This package contains two libraries, libg++ and libstdc++, and their
respective headers.
Libg++ is the original C++ class library of the GNU project and came into
life long before thre C++ library was standardised. Because of this it
should not be used for new projects. It's only included for older packages
that might need it.
Libstdc++ ist the current C++ library of the GNU C++ compiler. While it is
much closer to the standard, it is far from being complete.
You will find the source code in the package gcc, series zq.

SuSE series: d
root@notch:/home/pwk/DivXripper-0.1.2 > rpm -V libgpp
root@notch:/home/pwk/DivXripper-0.1.2 >



Also meine libstdc++ ist da und in Ordnung. Das einzige was ich mir Vorstellen kann, ist dass der Dumme gcc 3.0 irgendwo noch rumgeistert, denn mit dem konnte ich nicht kompilieren, also habe ich den alten mangels uninstall Option "drübergebügelt "libgpp, gcc, gpp" Neu installiert. Mein eiger C++ code compiliert auch wieder. Was könnte da noch von 3.0 rumgurken ? Oder liegt es an etwas anderem ?
 

Sebastian Ude
Gast





BeitragVerfasst am: 23. Jun 2001 22:47   Titel: Re: DivXripper 0.1.2 will nicht kompilieren

@ Peter

Ob du alle Symbole deiner libstd++ mit "strip" wegenommen hast erkennst du garantiert nicht mit RPM, sondern nur wenn du gegen sie linkst.
Für RPM sind die Dateien noch da => alles in Butter.

Nur die Geschichte mit der gestrippten libstd++ kann nicht das Problem sein, wenn du noch eigene C++-Anwendungen übersetzen kannst (kannst du ja).


Das mit dem "ligpp + cpp + gpp über eine selbstkompilierte gcc 3.0-Installation rüberbügeln" ist aber in der Tat etwas kritisch.
Sofern deine selbstgeschriebenen C++-Applikationen compilieren, kann das Compilersystem nicht ganz beschädgt sein, aber ich bin sicher, dass das Problem etwas damit zu tun hat.

Für solche Fälle (Programme die kein uinstall-Target in der Makefile anbieten) ist checkinstall / installwatch & co. einfach noch das Beste.


PS:

An welchen Prefix hattest du den gcc 3.0 installiert ?

Welche Version ergibt ein

gcc -v

?

Compiliere mal eine einfache C++-Anwendung, und mach ein "ldd" auf das generierte Binary.
Welche libstd++ wird verwendet ?
 

Peter
Gast





BeitragVerfasst am: 24. Jun 2001 11:05   Titel: Re: DivXripper 0.1.2 will nicht kompilieren

./configure --prefix=/usr --with-gxx-include-dir=/usr/include/g++ --enable-shared --enable-nls --enable-languages=c,c++

pwk@notch:~ > gcc -v
Reading specs from /usr/lib/gcc-lib/i486-suse-linux/2.95.3/specs
gcc version 2.95.3 20010315 (SuSE)

pwk@notch:~/transcendent/mki > ldd a.out
libstdc++-libc6.2-2.so.3 => /usr/lib/libstdc++-libc6.2-2.so.3 (0x40024000)
libm.so.6 => /lib/libm.so.6 (0x4006e000)
libc.so.6 => /lib/libc.so.6 (0x4008d000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

Hoffe das hilft irgend jemand weiter !
 

Peter
Gast





BeitragVerfasst am: 25. Jun 2001 11:22   Titel: Re: DivXripper 0.1.2 will nicht kompilieren

@Sebastian
Ist alles in Ordnung oder was ? Weißt du nicht mehr weiter ?
 

Sebastian Ude
Gast





BeitragVerfasst am: 25. Jun 2001 12:36   Titel: Re: DivXripper 0.1.2 will nicht kompilieren

@ Peter

Jajaja, ist ja gut .
Ich kann halt leider nicht den ganzen Tag hier im Forum rumhocken.


Also:

Du hast also den gcc 3.0 nach /usr installiert, wenn ich das richtig sehe ?

Das war dann schon der schwerwiegende Fehler - wenn man zwei gcc-Versionen gleichzeitig benutzen will, sollte man sie an unterschiedliche Prefixe installieren.
Ansonsten kommen sich zahlreiche Sachen ins Gehege und Probleme sind vorprogrammiert.


Ich würde an deiner Stelle jetzt folgendes machen:

Alle gcc-Pakete deiner Distribution (inkl. g++, libstdc++ und Headers) deinstallieren.
Dann (sofern es noch existiert) das Verzeichnis "/usr/include/g++" löschen und genau so mit /usr/lib/gcc-lib und /usr/lib/libstdc++* verfahren.

Letzendlich wieder die gcc-Pakete deiner Distribution installieren - und zukünftig in solchen Fällen einen anderen Prefix verwenden und evtl. Programme wie checkinstall einsetzen.
 

Peter
Gast





BeitragVerfasst am: 26. Jun 2001 8:26   Titel: Re: DivXripper 0.1.2 will nicht kompilieren

Muchas Gratias,

jetzt funzt die Sache

PS: Ich wollte den gcc ja mit checkinstall installieren, aber das wollte checkinstall nicht (siehe hier irgendwo im Forum)

DANKE
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Sonstiges Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy