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

undefined reference Probleme mit libid3



Hi,

das Problem ist zwar eventuell nicht Debian spezifisch (vielleicht ist
auch die Lib in dem Paket kaputt...), aber ich weiss momentan nicht so
recht wo ich sonst fragen soll. Problem ist das die die libid3 aus dem
Paket libid3-3.8.2. Wenn ich mit einem winzigen C++ Prog das Ding teste
krieg ich einen Haufen Fehler das er die Funktionsymbole nicht auflösen
kann. In meiner richtigen Applikation ist die libid3 dynamisch zu meiner
Programmbibliothek gelinkt und er meckert dann erst wenn ich meine
Programmbibliothek und die libid3 in mein Programm verlinken will.

Das ist das Miniprog bei dem er sich schon verschluckt:
| #include <id3/tag.h>
| #include <iostream.h>
| 
| int main()
| {
| 	
| 	ID3_Tag tag("temp.mp3");
| 	ID3_Frame *f = tag.Find(ID3FID_ORIGARTIST);
| 	if( f != NULL)
| 	{
| 		ID3_Field *field = f->GetField(ID3FN_TEXTENC);
| 			field = f->GetField(ID3FN_TEXT);
| 			if(field != NULL)
| 			{
| 				unicode_t* buf = new unicode_t(field->Size());
| 				field->Get(buf, field->Size());
| //				QString s;
| //				s.setUnicodeCodes(buf, field->Size());
| 				cout << "Output is ä:" << buf;
| 			}
| 	}
| 	return 0;
| }

und so ruf ich den gcc-2.95 auf:

gcc -o a a.cpp -lid3

Sollte ja ausreichen oder?!

Raus kommt sowas:
gcc -o a -lid3 a.cpp
| /tmp/ccVslXkL.o(.text+0x1c): In function `main':
| : undefined reference to `ID3_Tag::ID3_Tag(char const *)'
| /tmp/ccVslXkL.o(.text+0x30): In function `main':
| : undefined reference to `ID3_Tag::Find(ID3_FrameID) const'
| /tmp/ccVslXkL.o(.text+0x59): In function `main':
| : undefined reference to `ID3_Frame::GetField(ID3_FieldID) const'
| /tmp/ccVslXkL.o(.text+0x75): In function `main':
[...]
| /usr/lib/libid3.so: undefined reference to
| `std::__default_alloc_template<true, 0>::allocate(unsigned)'
| /usr/lib/libid3.so: undefined reference to `VTT for
| std::basic_ifstream<char, std::char_traits<char> >'
| /usr/lib/libid3.so: undefined reference to `uncompress'
| /usr/lib/libid3.so: undefined reference to `operator new[](unsigned)'
| /usr/lib/libid3.so: undefined reference to
| `std::__default_alloc_template<true, 0>::_S_free_list'

Die ersten paar Zeilen krieg ich nur in dem kleinen Testprog, aber die
letzten paar machen mir zu schaffen. Die Library ist laut ldd nur gegen
die libc gelinkt. Vielleicht liegt da der Hase begraben, denn lt. Doku
ist das Ding ne C++ Bibliothek?!

Andreas

-- 
Aus Murphy's Gesetze:
Alle unbeseelten Gegenstände können sich gerade soweit bewegen, daß
sie einem im Weg sind.

Attachment: pgpZrnqeUD6YK.pgp
Description: PGP signature


Reply to: