<?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[Templates: &amp;quot;multiple definition&amp;quot; Linkerfehler]]></title><description><![CDATA[<p>Hallo zusammen!</p>
<p>Mache gerade ddie ersten Gehversuche mit Templates und hab gleich die ersten Probleme:</p>
<pre><code class="language-cpp">template &lt;typename T&gt;
class trait
{
public:
	static int type;
};

template&lt;&gt;
int trait&lt;int&gt;::type = Type_Int;

template&lt;&gt;
int trait&lt;double&gt;::type = Type_Double;
</code></pre>
<p>Leider bekomme ich Linkerfehler wegen &quot;multiple definition&quot; und komme nicht weiter. Habe schon Google benutzt aber keinen wirklichen Hinweis auf mein Problem gefunden. &quot;inline&quot; geht nicht da keine Funktionen. Es gibt auch keine extra .cpp Datei, alles im Header deklariert und definiert.</p>
<pre><code>xpjdisplay.o:(.data+0x0): multiple definition of `trait&lt;int&gt;::type'
basedisplay.o:(.data+0x0): first defined here
xpjdisplay.o:(.data+0x4): multiple definition of `trait&lt;double&gt;::type'
basedisplay.o:(.data+0x4): first defined here
xpjpanel.o:(.data+0x0): multiple definition of `trait&lt;int&gt;::type'
basedisplay.o:(.data+0x0): first defined here
xpjpanel.o:(.data+0x4): multiple definition of `trait&lt;double&gt;::type'
basedisplay.o:(.data+0x4): first defined here
</code></pre>
<p>System: Linux</p>
<pre><code>[sven@sunshine ~]$ g++ -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ../configure --prefix=/usr --enable-shared --enable-languages=c,c++,fortran,objc,obj-c++ --enable-threads=posix --mandir=/usr/share/man --infodir=/usr/share/info --enable-__cxa_atexit --disable-multilib --libdir=/usr/lib --libexecdir=/usr/lib --enable-clocale=gnu --disable-libstdcxx-pch --with-tune=generic
Thread model: posix
gcc version 4.4.0 20090526 (prerelease) (GCC)
</code></pre>
<p>Danke im Voraus für jeglichen Hinweis <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/243900/templates-quot-multiple-definition-quot-linkerfehler</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 15:51:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/243900.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 22 Jun 2009 17:55:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Templates: &amp;quot;multiple definition&amp;quot; Linkerfehler on Mon, 22 Jun 2009 17:55:09 GMT]]></title><description><![CDATA[<p>Hallo zusammen!</p>
<p>Mache gerade ddie ersten Gehversuche mit Templates und hab gleich die ersten Probleme:</p>
<pre><code class="language-cpp">template &lt;typename T&gt;
class trait
{
public:
	static int type;
};

template&lt;&gt;
int trait&lt;int&gt;::type = Type_Int;

template&lt;&gt;
int trait&lt;double&gt;::type = Type_Double;
</code></pre>
<p>Leider bekomme ich Linkerfehler wegen &quot;multiple definition&quot; und komme nicht weiter. Habe schon Google benutzt aber keinen wirklichen Hinweis auf mein Problem gefunden. &quot;inline&quot; geht nicht da keine Funktionen. Es gibt auch keine extra .cpp Datei, alles im Header deklariert und definiert.</p>
<pre><code>xpjdisplay.o:(.data+0x0): multiple definition of `trait&lt;int&gt;::type'
basedisplay.o:(.data+0x0): first defined here
xpjdisplay.o:(.data+0x4): multiple definition of `trait&lt;double&gt;::type'
basedisplay.o:(.data+0x4): first defined here
xpjpanel.o:(.data+0x0): multiple definition of `trait&lt;int&gt;::type'
basedisplay.o:(.data+0x0): first defined here
xpjpanel.o:(.data+0x4): multiple definition of `trait&lt;double&gt;::type'
basedisplay.o:(.data+0x4): first defined here
</code></pre>
<p>System: Linux</p>
<pre><code>[sven@sunshine ~]$ g++ -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ../configure --prefix=/usr --enable-shared --enable-languages=c,c++,fortran,objc,obj-c++ --enable-threads=posix --mandir=/usr/share/man --infodir=/usr/share/info --enable-__cxa_atexit --disable-multilib --libdir=/usr/lib --libexecdir=/usr/lib --enable-clocale=gnu --disable-libstdcxx-pch --with-tune=generic
Thread model: posix
gcc version 4.4.0 20090526 (prerelease) (GCC)
</code></pre>
<p>Danke im Voraus für jeglichen Hinweis <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1731183</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1731183</guid><dc:creator><![CDATA[schwudde]]></dc:creator><pubDate>Mon, 22 Jun 2009 17:55:09 GMT</pubDate></item><item><title><![CDATA[Reply to Templates: &amp;quot;multiple definition&amp;quot; Linkerfehler on Tue, 23 Jun 2009 13:05:58 GMT]]></title><description><![CDATA[<p>Die Definition der statischen Variable muss aber trotzdem in eine Source-Datei, die unabhängig vom Header nur einmal gelinkt wird. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1731596</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1731596</guid><dc:creator><![CDATA[devkid]]></dc:creator><pubDate>Tue, 23 Jun 2009 13:05:58 GMT</pubDate></item></channel></rss>