|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: May 2002
Città: Trento (Lavis)
Messaggi: 2583
|
niubbo... Dev-c++ e id3lib...
Ciao a tutti!
mi sono cimentato nella programmazione in c++, e grazie a Dev-c++ e wxWindows costruire l'interfaccia grafica è stato abbastanza semplice... Il problema nasce ora che devo aggiungere funzionalità come la lettura delle tag Id3 e degli OggVorbis Comments... come faccio a includere in mamiera corretta le librerie? finora, usando solo wxWindows, mi sono servito dei devpacks, per installare le librerie, e ora sono nella c@cc@! dunque, ho provato a fare questo: ho scaricato id3lib, versione sorgente e i binari per windows. ho posizionato i binari nella cartella "lib", mentre i file della cartella "include" dei sorgenti l'ho copiata pari pari nella cartella "include" di dev c++, senza avere bisogno di linkare tali file nelle proprietà del progetto, e per averli disponibili per altre applicazioni. inoltre, ho copiato la cartella "src" dei sorgenti nella cartella del mio progetto e rinominata "id3", per avere le funzioni di base (misc_support.cpp, contenente le funzioni per leggere le tag senza dover scrivere kilometri di roba). fatto questo, ho aggiunto le seguenti righe nel file audiorun.h (praticamente il mio main.h): #define ID3LIB_LINKOPTION 1 #include <id3/tag.h> #include "id3/misc_support.h" oltre agli altre include per wxwindows... ed ecco la funzione incriminata: Codice:
wxString AppFrame::leggiTitolo(wxString percorso) { char *titolo; wxString tmp; if (percorso.Right(4) == ".mp3") { //legge tag MP3 //provo a leggere ID3v2 ID3_Tag tagBrano(percorso); titolo = ID3_GetTitle(&tagBrano); if (NULL != &titolo) { //trovata ID3v2, restituisco il titolo return titolo; } else { //ID3v2 non trovata, provo con ID3v1 tagBrano.Link("song.mp3", ID3TT_ID3V1); titolo = ID3_GetTitle(&tagBrano); if (NULL != &titolo) { //trovata ID3v1, restituisco il titolo return titolo; } else { //nessuna tag, uso il nome del file senza estensione tmp = percorso.AfterLast(char(92)); tmp.Remove(tmp.Len() - 4); return tmp; } } } else if (percorso.Right(4) == ".ogg") { //legge commento OggVorbis tmp = percorso.AfterLast(char(92)); tmp.Remove(tmp.Len() - 4); return tmp; } } Codice:
[Linker error] undefined reference to `ID3_Tag::ID3_Tag(char const *)' [Linker error] undefined reference to `ID3_GetTitle(ID3_Tag const *)' [Linker error] undefined reference to `ID3_Tag::~ID3_Tag(void)' [Linker error] undefined reference to `ID3_Tag::Link(char const *, unsigned short)' [Linker error] undefined reference to `ID3_GetTitle(ID3_Tag const *)' [Linker error] undefined reference to `ID3_Tag::~ID3_Tag(void)' [Linker error] undefined reference to `ID3_Tag::~ID3_Tag(void)' [Linker error] undefined reference to `ID3_Tag::~ID3_Tag(void)' C:\Andrea\Mio\Cpp\AudioRun\Makefile.win [Build Error] [AudioRun.exe] Error 1 è problema di codice, di installazione della libreria o che altro? non è che magari esiste un devpack delle id3lib???? grazie per l'aiutone!!!! ciao a tutti! |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Nella libreria dovresti aver trovato anche dei file con estensione .lib...
Questi devono essere linkati al tuo eseguibile: Project -> Project Options -> Parameters -> Add library or object e ci aggiungi i .lib che ti servono... Potrebbe nascere anche un problema sulla compatibilità del .lib con il compilatore MinGW...in tal caso dovresti ricompilare il sorgente della libreria e generare il .a (quivalente del .lib per MinGW)... |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: May 2002
Città: Trento (Lavis)
Messaggi: 2583
|
grazie!
aggiungendo la libreria per gli ogg ho rilevato lo stesso problema, e grazie al tuo aiuto l'ho risolto... ma l'id3lib ancora non funziona, l'errore è sempre quello....provvederò a ricompilare la libreria... se trovo tutto il necessario... sto facendo un po' di casino con 'sti file! ciao e grazie! |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: May 2002
Città: Trento (Lavis)
Messaggi: 2583
|
help...
non riesco a capire come compilare la libreria... posso creare un nuovo progetto con dev-c++ o è meglio che uso il make da riga di comando? se sì, mi dai (date) le direttive? con tutti sti switch ci capisco poco o niente... ciao e grazie mille! |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: May 2002
Città: Trento (Lavis)
Messaggi: 2583
|
qualcuno sa darmi un riferimento per la guida del mingw o sa spiegarmi come faccio a ricompilare la libreria?
l'errore persiste... ah, e magari conoscete un metodo migliore per leggere i commenti dei file ogg usando la libreria vorbisfile? quest'ltima pretende ch eil file sia già aperto e messo in stdin, ma io ho solo bisogno di leggere i commenti, per ora... ciao! |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Magari se ci dai il link al sito della libreria da ricompilare
![]() |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: May 2002
Città: Trento (Lavis)
Messaggi: 2583
|
Quote:
credevo che conoscessi id3lib... sorry! ciao e grazie! |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:26.