<?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[Linker Error bei Template Methode]]></title><description><![CDATA[<p>Tach...</p>
<p>folgendes:</p>
<p>[code]<br />
// mm_logger.hpp<br />
#ifndef __MM_LOGGER_HPP__<br />
#define __MM_LOGGER_HPP__</p>
<p>#include &lt;ostream&gt;<br />
#include &lt;string&gt;<br />
#include &lt;ctime&gt;</p>
<p>namespace mm {</p>
<p>class Logger {<br />
private:<br />
std::ostream&amp; m_stream;<br />
unsigned m_level;<br />
public:<br />
Logger(std::ostream&amp; stream, const unsigned level) : m_stream(stream), m_level(level) {}<br />
template &lt;typename type&gt; void LogMsg(const unsigned, const std::string, const std::string, const type&amp;);<br />
};</p>
<p>}</p>
<p>#endif // __MM_LOGGER_HPP__<br />
[quote]</p>
<p>[code]<br />
#include &quot;mm_logger.hpp&quot;</p>
<p>template &lt;typename type&gt;<br />
void mm::Logger::LogMsg(const unsigned req,<br />
const std::string sub,<br />
const std::string msg,<br />
const type&amp; val) {<br />
if(m_level &gt;= req)<br />
m_stream &lt;&lt; &quot;DATE, TIME &quot; &lt;&lt; sub &lt;&lt; msg &lt;&lt; val &lt;&lt; std::endl;<br />
}<br />
[quote]</p>
<p>[code]<br />
#include &lt;iostream&gt;<br />
#include &lt;string&gt;</p>
<p>#include &quot;logger/mm_logger.hpp&quot;</p>
<p>const std::string LEX(&quot;LEXER&quot;);</p>
<p>int main(int argc, char *argv[])<br />
{<br />
mm::Logger log(std::cerr, 2);<br />
log.LogMsg(1, LEX, &quot;Das ist ein Test&quot;, 3.14);<br />
system(&quot;PAUSE&quot;);<br />
return EXIT_SUCCESS;<br />
}<br />
[quote]</p>
<p>[quote=&quot;MinGW 3.4.2&quot;]<br />
F:\source\projects\mm_rc1\main.o(.text+0x232) In function <code>main': \[Linker error\] undefined reference to</code>void mm::Logger::LogMsg&lt;double&gt;(unsigned int, std::string, std::string, double const&amp;)'<br />
F:\source\projects\mm_rc1\main.o(.text+0x22c) ld returned 1 exit status<br />
F:\source\projects\mm_rc1\Makefile.win [Build Error] [mm.exe] Error 1<br />
[quote]</p>
<p>Ich verwende DevCpp IDE, alle Datein sind im Projekt (mm_logger.cpp ist auch in der Makefile eingetragen) ... wo ist der Fehler?</p>
<p>MfG &amp;&amp; THX</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/127741/linker-error-bei-template-methode</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 05:14:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/127741.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 26 Nov 2005 22:21:07 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Linker Error bei Template Methode on Sat, 26 Nov 2005 22:21:07 GMT]]></title><description><![CDATA[<p>Tach...</p>
<p>folgendes:</p>
<p>[code]<br />
// mm_logger.hpp<br />
#ifndef __MM_LOGGER_HPP__<br />
#define __MM_LOGGER_HPP__</p>
<p>#include &lt;ostream&gt;<br />
#include &lt;string&gt;<br />
#include &lt;ctime&gt;</p>
<p>namespace mm {</p>
<p>class Logger {<br />
private:<br />
std::ostream&amp; m_stream;<br />
unsigned m_level;<br />
public:<br />
Logger(std::ostream&amp; stream, const unsigned level) : m_stream(stream), m_level(level) {}<br />
template &lt;typename type&gt; void LogMsg(const unsigned, const std::string, const std::string, const type&amp;);<br />
};</p>
<p>}</p>
<p>#endif // __MM_LOGGER_HPP__<br />
[quote]</p>
<p>[code]<br />
#include &quot;mm_logger.hpp&quot;</p>
<p>template &lt;typename type&gt;<br />
void mm::Logger::LogMsg(const unsigned req,<br />
const std::string sub,<br />
const std::string msg,<br />
const type&amp; val) {<br />
if(m_level &gt;= req)<br />
m_stream &lt;&lt; &quot;DATE, TIME &quot; &lt;&lt; sub &lt;&lt; msg &lt;&lt; val &lt;&lt; std::endl;<br />
}<br />
[quote]</p>
<p>[code]<br />
#include &lt;iostream&gt;<br />
#include &lt;string&gt;</p>
<p>#include &quot;logger/mm_logger.hpp&quot;</p>
<p>const std::string LEX(&quot;LEXER&quot;);</p>
<p>int main(int argc, char *argv[])<br />
{<br />
mm::Logger log(std::cerr, 2);<br />
log.LogMsg(1, LEX, &quot;Das ist ein Test&quot;, 3.14);<br />
system(&quot;PAUSE&quot;);<br />
return EXIT_SUCCESS;<br />
}<br />
[quote]</p>
<p>[quote=&quot;MinGW 3.4.2&quot;]<br />
F:\source\projects\mm_rc1\main.o(.text+0x232) In function <code>main': \[Linker error\] undefined reference to</code>void mm::Logger::LogMsg&lt;double&gt;(unsigned int, std::string, std::string, double const&amp;)'<br />
F:\source\projects\mm_rc1\main.o(.text+0x22c) ld returned 1 exit status<br />
F:\source\projects\mm_rc1\Makefile.win [Build Error] [mm.exe] Error 1<br />
[quote]</p>
<p>Ich verwende DevCpp IDE, alle Datein sind im Projekt (mm_logger.cpp ist auch in der Makefile eingetragen) ... wo ist der Fehler?</p>
<p>MfG &amp;&amp; THX</p>
]]></description><link>https://www.c-plusplus.net/forum/post/928047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/928047</guid><dc:creator><![CDATA[dirk diggler]]></dc:creator><pubDate>Sat, 26 Nov 2005 22:21:07 GMT</pubDate></item><item><title><![CDATA[Reply to Linker Error bei Template Methode on Sat, 26 Nov 2005 22:22:55 GMT]]></title><description><![CDATA[<p>Tach...</p>
<p>sorry für den Doppelpost, hier nochmal besser lesbar:</p>
<pre><code>// mm_logger.hpp
#ifndef __MM_LOGGER_HPP__
#define __MM_LOGGER_HPP__

#include &lt;ostream&gt;
#include &lt;string&gt;
#include &lt;ctime&gt;

namespace mm {

class Logger {
private:
std::ostream&amp; m_stream;
unsigned m_level;
public:
Logger(std::ostream&amp; stream, const unsigned level) : m_stream(stream), m_level(level) {}
template &lt;typename type&gt; void LogMsg(const unsigned, const std::string, const std::string, const type&amp;);
};

}

#endif // __MM_LOGGER_HPP__
</code></pre>
<pre><code>#include &quot;mm_logger.hpp&quot;

template &lt;typename type&gt;
void mm::Logger::LogMsg(const unsigned req,
const std::string sub,
const std::string msg,
const type&amp; val) {
if(m_level &gt;= req)
m_stream &lt;&lt; &quot;DATE, TIME &quot; &lt;&lt; sub &lt;&lt; msg &lt;&lt; val &lt;&lt; std::endl;
}
</code></pre>
<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;

#include &quot;logger/mm_logger.hpp&quot;

const std::string LEX(&quot;LEXER&quot;);

int main(int argc, char *argv[])
{
mm::Logger log(std::cerr, 2);
log.LogMsg(1, LEX, &quot;Das ist ein Test&quot;, 3.14);
system(&quot;PAUSE&quot;);
return EXIT_SUCCESS;
}
</code></pre>
<p>MinGW 3.4.2 schrieb:</p>
<blockquote>
<p>F:\source\projects\mm_rc1\main.o(.text+0x232) In function <code>main': \[Linker error\] undefined reference to</code>void mm::Logger::LogMsg&lt;double&gt;(unsigned int, std::string, std::string, double const&amp;)'<br />
F:\source\projects\mm_rc1\main.o(.text+0x22c) ld returned 1 exit status<br />
F:\source\projects\mm_rc1\Makefile.win [Build Error] [mm.exe] Error 1</p>
</blockquote>
<p>Ich verwende DevCpp IDE, alle Datein sind im Projekt (mm_logger.cpp ist auch in der Makefile eingetragen) ... wo ist der Fehler?</p>
<p>MfG &amp;&amp; THX</p>
]]></description><link>https://www.c-plusplus.net/forum/post/928050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/928050</guid><dc:creator><![CDATA[dirk diggler]]></dc:creator><pubDate>Sat, 26 Nov 2005 22:22:55 GMT</pubDate></item><item><title><![CDATA[Reply to Linker Error bei Template Methode on Sat, 26 Nov 2005 22:28:08 GMT]]></title><description><![CDATA[<p>Templates müssen in jeder Übersetzungseinheit bekannt sein, um aufgelöst werden zu können, praktisch bedeutet das, dass die Defintionen der Templatemethoden in den HEader müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/928053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/928053</guid><dc:creator><![CDATA[FAQ gucken nächstes Mal!]]></dc:creator><pubDate>Sat, 26 Nov 2005 22:28:08 GMT</pubDate></item></channel></rss>