Probleme beim einrichten von TagLib



  • Ich möchte MP3 Files auslesen und hab mir TagLib runtergeladen, so wie es in einem anderen Thread vorgeschlagen wurde.

    Ich habe damit allerdings nur Probleme.

    In der Datei tbytevector.h steht

    long long toLongLong(bool mostSignificantByteFirst = true) const;
    

    was dann die Fehlermeldung gibt:

    [C++ Error] tbytevector.h(299): E2176 Too many types in declaration
    

    Ich gehe davon aus, dass da ein Fachmann dran gesessen hat und darum werd ich die Datei auch nicht verändern.

    In der Datei tlist.tcc steht

    template <class T>
    template <class TP> class List<T>::ListPrivate<TP *>  : public ListPrivateBase
    {
    public:
      ListPrivate() : ListPrivateBase() {}
      ListPrivate(const std::list<TP *> &l) : ListPrivateBase(), list(l) {}
      ~ListPrivate() {
        clear();
      }
      void clear() {
        if(autoDelete) {
          typename std::list<TP *>::const_iterator it = list.begin();
          for(; it != list.end(); ++it)
            delete *it;
        }
        list.clear();
      }
      std::list<TP *> list;
    };
    

    Das gibt die Fehlermeldung

    [C++ Error] tlist.tcc(62): E2238 Multiple declaration for 'List<T>::ListPrivate<TP *>'
    [C++ Error] tlist.tcc(79): E2428 Templates must be classes or functions
    

    Was muss ich denn einstellen, damit es funktioniert?

    In der Anleitung http://developer.kde.org/~wheeler/taglib/api/ steht was von

    TagLib provides a script called taglib-config that returns the necessary compiler and linker flags, as well as the version number. To build a small sample program one would use:
    g++ taglib-test.cpp `taglib-config --cflags --libs` -o taglib-test

    This should generally be integrated into the configure check for TagLib in your project.

    Mit diesem Satz kann ich leider nichts anfangen.

    Was heißt das?

    Ich hab BCB 5.0.



  • Hallo,

    Die erste Fehlermeldung dürfte durch den Typ long long verursacht sein, den es im Builder (und im Standard nicht gibt). Streiche da einfach mal ein long.
    Beim zweiten Fehler kann man erstmal ohne mehr Code nicht viel dazu sagen. Es kommt hier darauf an, wie das Template verwendet wird. Evtl. fehlen hier auch noch weitere Inkludes. z.Bsp. für den Typ List<> sowie ListPrivateBase.
    Ich denke mal, dass die tcc-datei auch inkludet wird, sonst wird das ja sowieso nichts.


Anmelden zum Antworten