PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ID3 Tag auslesen&schreiben



tuxipuxi
16-11-2002, 16:21
hi,

ich habe lange gesucht, aber nix vernuenftiges gefunden.
ich moechte ic3tags auslesen& schreiben ( c++ ).

hat da einer infos?

danke im vorraus

lane

The Ripper
16-11-2002, 16:34
das (http://www.id3lib.org/) dürfte dir weiterhelfen ;)

tuxipuxi
16-11-2002, 18:26
danke :) .

nur ich bekomme bei diesem code :


#include <id3/tag.h>
#include <iostream.h>

int main(int argc,char* argv[])
{
ID3_Tag myTag("song.mp3");

}

die meldung:
lane@linux:~/Documents> g++ id3.cpp -o "id3"
/tmp/cceRe9MX.o: In function `main':
/tmp/cceRe9MX.o(.text+0x19): undefined reference to `ID3_Tag::ID3_Tag(char const *)'
/tmp/cceRe9MX.o(.text+0x62): undefined reference to `ID3_Tag::~ID3_Tag(void)'
/tmp/cceRe9MX.o(.text+0x7d): undefined reference to `ID3_Tag::~ID3_Tag(void)'
collect2: ld returned 1 exit status
lane@linux:~/Documents>

???:confused:

edit:
kennt einer von euch n gutes tutorial dafuer? die documentation ist ziemlich unverstaendlich

micha
16-11-2002, 18:36
Hi,

Du solltest noch gegen die id3lib linken. Keine Ahnung wie die Bibiliothek genau heisst, das kannst Du ja unter /usr/lib oder wo sie steckt, nachschauen. Aber angenommen, sie heisst libid3lib.so.1, dann sieht der Linkeraufruf so aus:

g++ -o id3 id3.cpp -lid3lib

Gruß micha

The Ripper
16-11-2002, 18:37
du musst dem gcc noch sagen, dass du die id3lib verwenden möchtest. kompiliere dein programm so:
lane@linux:~/Documents> g++ id3.cpp -o "id3" -lid3

tuxipuxi
16-11-2002, 18:51
lane@linux:~/Documents> g++ id3.cpp -o "id32" -lid3
/usr/lib/libid3.so: undefined reference to `uncompress'
/usr/lib/libid3.so: undefined reference to `compress'
collect2: ld returned 1 exit status
lane@linux:~/Documents>

:(

tkortkamp
16-11-2002, 18:58
g++ id3.cpp -o "id32" -lid3 -lz

tuxipuxi
16-11-2002, 18:59
Original geschrieben von tkortkamp
g++ id3.cpp -o "id32" -lid3 -lz
thx :)

edit:
kennt denn noch einer ne gute erklaerung zu der lib?

tkortkamp
16-11-2002, 19:13
Wie wäre es mit der offiziellen Dokumentation?

http://www.id3lib.org/id3lib-manual.php

anda_skoa
16-11-2002, 19:22
Und weil wir gerade dabei sind :D



#include <iostream>

using namespace std;


iostream.h ist ein veralteter (deprecated) Header.
Der Standard C++ Header heißt iostream.
Da alle Funkionen und Konstanten darin im Namespace std sind, muß man das auch mit angeben, oder das using Statement benutzen.

Ciao,
_

tuxipuxi
16-11-2002, 19:35
oh, das war eher zufaellig.... ich hab nicht dran gedacht.
hab iostream schon 3 wochen net mehr benutzt, also hab ichs vergessen.