<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Probleme beim einrichten von TagLib]]></title><description><![CDATA[<p>Ich möchte MP3 Files auslesen und hab mir TagLib runtergeladen, so wie es in einem anderen Thread vorgeschlagen wurde.</p>
<p>Ich habe damit allerdings nur Probleme.</p>
<p>In der Datei tbytevector.h steht</p>
<pre><code class="language-cpp">long long toLongLong(bool mostSignificantByteFirst = true) const;
</code></pre>
<p>was dann die Fehlermeldung gibt:</p>
<pre><code>[C++ Error] tbytevector.h(299): E2176 Too many types in declaration
</code></pre>
<p>Ich gehe davon aus, dass da ein Fachmann dran gesessen hat und darum werd ich die Datei auch nicht verändern.</p>
<p>In der Datei tlist.tcc steht</p>
<pre><code class="language-cpp">template &lt;class T&gt;
template &lt;class TP&gt; class List&lt;T&gt;::ListPrivate&lt;TP *&gt;  : public ListPrivateBase
{
public:
  ListPrivate() : ListPrivateBase() {}
  ListPrivate(const std::list&lt;TP *&gt; &amp;l) : ListPrivateBase(), list(l) {}
  ~ListPrivate() {
    clear();
  }
  void clear() {
    if(autoDelete) {
      typename std::list&lt;TP *&gt;::const_iterator it = list.begin();
      for(; it != list.end(); ++it)
        delete *it;
    }
    list.clear();
  }
  std::list&lt;TP *&gt; list;
};
</code></pre>
<p>Das gibt die Fehlermeldung</p>
<pre><code>[C++ Error] tlist.tcc(62): E2238 Multiple declaration for 'List&lt;T&gt;::ListPrivate&lt;TP *&gt;'
[C++ Error] tlist.tcc(79): E2428 Templates must be classes or functions
</code></pre>
<p>Was muss ich denn einstellen, damit es funktioniert?</p>
<p>In der Anleitung <a href="http://developer.kde.org/~wheeler/taglib/api/" rel="nofollow">http://developer.kde.org/~wheeler/taglib/api/</a> steht was von</p>
<blockquote>
<p>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:<br />
g++ taglib-test.cpp `taglib-config --cflags --libs` -o taglib-test</p>
<p>This should generally be integrated into the configure check for TagLib in your project.</p>
</blockquote>
<p>Mit diesem Satz kann ich leider nichts anfangen.</p>
<p>Was heißt das?</p>
<p>Ich hab BCB 5.0.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/188482/probleme-beim-einrichten-von-taglib</link><generator>RSS for Node</generator><lastBuildDate>Mon, 17 Aug 2026 01:09:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/188482.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 31 Jul 2007 18:51:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme beim einrichten von TagLib on Tue, 31 Jul 2007 18:51:33 GMT]]></title><description><![CDATA[<p>Ich möchte MP3 Files auslesen und hab mir TagLib runtergeladen, so wie es in einem anderen Thread vorgeschlagen wurde.</p>
<p>Ich habe damit allerdings nur Probleme.</p>
<p>In der Datei tbytevector.h steht</p>
<pre><code class="language-cpp">long long toLongLong(bool mostSignificantByteFirst = true) const;
</code></pre>
<p>was dann die Fehlermeldung gibt:</p>
<pre><code>[C++ Error] tbytevector.h(299): E2176 Too many types in declaration
</code></pre>
<p>Ich gehe davon aus, dass da ein Fachmann dran gesessen hat und darum werd ich die Datei auch nicht verändern.</p>
<p>In der Datei tlist.tcc steht</p>
<pre><code class="language-cpp">template &lt;class T&gt;
template &lt;class TP&gt; class List&lt;T&gt;::ListPrivate&lt;TP *&gt;  : public ListPrivateBase
{
public:
  ListPrivate() : ListPrivateBase() {}
  ListPrivate(const std::list&lt;TP *&gt; &amp;l) : ListPrivateBase(), list(l) {}
  ~ListPrivate() {
    clear();
  }
  void clear() {
    if(autoDelete) {
      typename std::list&lt;TP *&gt;::const_iterator it = list.begin();
      for(; it != list.end(); ++it)
        delete *it;
    }
    list.clear();
  }
  std::list&lt;TP *&gt; list;
};
</code></pre>
<p>Das gibt die Fehlermeldung</p>
<pre><code>[C++ Error] tlist.tcc(62): E2238 Multiple declaration for 'List&lt;T&gt;::ListPrivate&lt;TP *&gt;'
[C++ Error] tlist.tcc(79): E2428 Templates must be classes or functions
</code></pre>
<p>Was muss ich denn einstellen, damit es funktioniert?</p>
<p>In der Anleitung <a href="http://developer.kde.org/~wheeler/taglib/api/" rel="nofollow">http://developer.kde.org/~wheeler/taglib/api/</a> steht was von</p>
<blockquote>
<p>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:<br />
g++ taglib-test.cpp `taglib-config --cflags --libs` -o taglib-test</p>
<p>This should generally be integrated into the configure check for TagLib in your project.</p>
</blockquote>
<p>Mit diesem Satz kann ich leider nichts anfangen.</p>
<p>Was heißt das?</p>
<p>Ich hab BCB 5.0.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1336069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336069</guid><dc:creator><![CDATA[Tobi3000]]></dc:creator><pubDate>Tue, 31 Jul 2007 18:51:33 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim einrichten von TagLib on Wed, 01 Aug 2007 07:43:41 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>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.<br />
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&lt;&gt; sowie ListPrivateBase.<br />
Ich denke mal, dass die tcc-datei auch inkludet wird, sonst wird das ja sowieso nichts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1336272</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336272</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 01 Aug 2007 07:43:41 GMT</pubDate></item></channel></rss>