<?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 findet Referenz nicht]]></title><description><![CDATA[<p>Hallo,</p>
<p>folgender Code (entschuldigt die ganzen verschachtelten Namensbereiche, evtl. liegt es ja an denen?):</p>
<pre><code class="language-cpp">// scanner.hpp

#include &lt;string&gt;

namespace madrat { namespace Caliph { namespace Compiler { namespace Frontend {
    class Scanner {
        std::wstring stream;
        bool heedWhitespaces;

    public:
        void setStream(std::wstring value);
        void setHeedWhitespaces(bool value);
    }; // Scanner
} } } }
</code></pre>
<pre><code class="language-cpp">// scanner.cpp

#include &quot;scanner.hpp&quot;

namespace madrat { namespace Caliph { namespace Compiler { namespace Frontend {
    inline void Scanner::setStream(wstring value)
    {
        this-&gt;stream = value;
    }

    inline void Scanner::setHeedWhitespaces(bool value)
    {
        this-&gt;heedWhitespaces = value;
    }
} } } }
</code></pre>
<pre><code class="language-cpp">// main.cpp

#include &quot;scanner.hpp&quot;
using namespace madrat::Caliph::Compiler::Frontend;

int main(int argc, char* argv[])
{
    Scanner myScanner;
    myScanner.setStream(L&quot;foo&quot;);
    //myScanner.setHeedWhitespaces(true); // funktioniert nicht
}
</code></pre>
<p>Dieser Code funktioniert. Sobald ich aber in 'main' die kommentierte Zeile auskommentiere, bekomme ich den Linkerfehler LNK2019, &quot;1 unresolved externals&quot;:</p>
<blockquote>
<p>error LNK2019: unresolved external symbol &quot;public: void __thiscall madrat::Caliph::Compiler::Frontend::Scanner::setHeedWhitespaces(bool)&quot; (?setHeedWhitespaces@Scanner@Frontend@Compiler@Caliph@madrat@@QAEX_N@Z) referenced in function _main main.obj</p>
</blockquote>
<p>Woran kann das liegen? In meinen Augen sind diese beiden Setter absolut äquivalent. Der Compiler ist z.Zt. MSVC++ 8.0.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/118686/linker-findet-referenz-nicht</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 12:19:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/118686.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 23 Aug 2005 09:39:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Linker findet Referenz nicht on Tue, 23 Aug 2005 09:39:59 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>folgender Code (entschuldigt die ganzen verschachtelten Namensbereiche, evtl. liegt es ja an denen?):</p>
<pre><code class="language-cpp">// scanner.hpp

#include &lt;string&gt;

namespace madrat { namespace Caliph { namespace Compiler { namespace Frontend {
    class Scanner {
        std::wstring stream;
        bool heedWhitespaces;

    public:
        void setStream(std::wstring value);
        void setHeedWhitespaces(bool value);
    }; // Scanner
} } } }
</code></pre>
<pre><code class="language-cpp">// scanner.cpp

#include &quot;scanner.hpp&quot;

namespace madrat { namespace Caliph { namespace Compiler { namespace Frontend {
    inline void Scanner::setStream(wstring value)
    {
        this-&gt;stream = value;
    }

    inline void Scanner::setHeedWhitespaces(bool value)
    {
        this-&gt;heedWhitespaces = value;
    }
} } } }
</code></pre>
<pre><code class="language-cpp">// main.cpp

#include &quot;scanner.hpp&quot;
using namespace madrat::Caliph::Compiler::Frontend;

int main(int argc, char* argv[])
{
    Scanner myScanner;
    myScanner.setStream(L&quot;foo&quot;);
    //myScanner.setHeedWhitespaces(true); // funktioniert nicht
}
</code></pre>
<p>Dieser Code funktioniert. Sobald ich aber in 'main' die kommentierte Zeile auskommentiere, bekomme ich den Linkerfehler LNK2019, &quot;1 unresolved externals&quot;:</p>
<blockquote>
<p>error LNK2019: unresolved external symbol &quot;public: void __thiscall madrat::Caliph::Compiler::Frontend::Scanner::setHeedWhitespaces(bool)&quot; (?setHeedWhitespaces@Scanner@Frontend@Compiler@Caliph@madrat@@QAEX_N@Z) referenced in function _main main.obj</p>
</blockquote>
<p>Woran kann das liegen? In meinen Augen sind diese beiden Setter absolut äquivalent. Der Compiler ist z.Zt. MSVC++ 8.0.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/856728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/856728</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Tue, 23 Aug 2005 09:39:59 GMT</pubDate></item><item><title><![CDATA[Reply to Linker findet Referenz nicht on Tue, 23 Aug 2005 09:59:34 GMT]]></title><description><![CDATA[<p>es könnte an der inline Deklaration der Methoden liegen, entweder entferne es oder packe die Definition auch in die Header-Datei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/856739</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/856739</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Tue, 23 Aug 2005 09:59:34 GMT</pubDate></item><item><title><![CDATA[Reply to Linker findet Referenz nicht on Tue, 23 Aug 2005 10:12:03 GMT]]></title><description><![CDATA[<p>Th schrieb:</p>
<blockquote>
<p>es könnte an der inline Deklaration der Methoden liegen</p>
</blockquote>
<p>Das würde ich auch mal spontan sagen.<br />
Vielleicht kommt der Compiler da irgendwie durcheinander mit da sie im selben namespace sind und dann nochmal inline.</p>
<p>Vielleicht doppelt - gemoppelt oder so <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/856744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/856744</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 23 Aug 2005 10:12:03 GMT</pubDate></item><item><title><![CDATA[Reply to Linker findet Referenz nicht on Tue, 23 Aug 2005 10:18:01 GMT]]></title><description><![CDATA[<p>... beuk.</p>
<p>Daran lag's. Vielen Dank für den Hinweis, darauf wäre ich wahrscheinlich nie (= eine sehr lange Zeit nicht) gekommen. Das ist jetzt natürlich doof; ich möchte schon, dass der meine Properties eingliedert. Na, mal schaun, vielleicht lagere ich das dann doch alles in den Header aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/856751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/856751</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Tue, 23 Aug 2005 10:18:01 GMT</pubDate></item></channel></rss>