<?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[inline -&amp;gt; unresolved external symbol]]></title><description><![CDATA[<p>Guten Morgen!</p>
<p>Also ich habe die Methodenprototypen in einer Header:</p>
<pre><code class="language-cpp">class xyz
{
public:
inline	void	set_a	(bool b_sel);
inline	void	set_b	(std::string &amp;_lab);
inline	void	set_c	(std::string &amp;_str);
}
</code></pre>
<p>so und das steht in einer CPP, die diese Header eingebunden hat:</p>
<pre><code class="language-cpp">void	xyz::set_a	(bool b_sel)
{
	this-&gt;_selected_ = b_sel;
}
void    xyz::set_b	(std::string &amp;_lab)		
{
	this-&gt;p_text_displayed = new std::string(_label);
}
void	xyz::set_c	(std::string &amp;_str)		
{
	this-&gt;p_pathstring = new std::string(_str_path);
}
</code></pre>
<p>so und wenn ich jetzt irgendwo die Methoden aufrufe, dann erhalte ich Linker-Fehler, speziell: unresolved external symbol-Fehler.<br />
In der Form:</p>
<blockquote>
<p>error LNK2019: unresolved external symbol &quot;public: void __thiscall xyz::set_c(class std::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class std::allocator&lt;char&gt; &gt; &amp;)&quot; ...</p>
</blockquote>
<p>so, und wenn ich jetzt bei den Prototypen das &quot;inline&quot; weg lasse, dann bekomm ich die Linkerfehler nicht, warum das?<br />
Ich würde mich über Antworten riesig freuen, danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/177505/inline-gt-unresolved-external-symbol</link><generator>RSS for Node</generator><lastBuildDate>Wed, 24 Jun 2026 16:19:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/177505.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 01 Apr 2007 09:45:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to inline -&amp;gt; unresolved external symbol on Sun, 01 Apr 2007 09:45:01 GMT]]></title><description><![CDATA[<p>Guten Morgen!</p>
<p>Also ich habe die Methodenprototypen in einer Header:</p>
<pre><code class="language-cpp">class xyz
{
public:
inline	void	set_a	(bool b_sel);
inline	void	set_b	(std::string &amp;_lab);
inline	void	set_c	(std::string &amp;_str);
}
</code></pre>
<p>so und das steht in einer CPP, die diese Header eingebunden hat:</p>
<pre><code class="language-cpp">void	xyz::set_a	(bool b_sel)
{
	this-&gt;_selected_ = b_sel;
}
void    xyz::set_b	(std::string &amp;_lab)		
{
	this-&gt;p_text_displayed = new std::string(_label);
}
void	xyz::set_c	(std::string &amp;_str)		
{
	this-&gt;p_pathstring = new std::string(_str_path);
}
</code></pre>
<p>so und wenn ich jetzt irgendwo die Methoden aufrufe, dann erhalte ich Linker-Fehler, speziell: unresolved external symbol-Fehler.<br />
In der Form:</p>
<blockquote>
<p>error LNK2019: unresolved external symbol &quot;public: void __thiscall xyz::set_c(class std::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class std::allocator&lt;char&gt; &gt; &amp;)&quot; ...</p>
</blockquote>
<p>so, und wenn ich jetzt bei den Prototypen das &quot;inline&quot; weg lasse, dann bekomm ich die Linkerfehler nicht, warum das?<br />
Ich würde mich über Antworten riesig freuen, danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1257014</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1257014</guid><dc:creator><![CDATA[Top se]]></dc:creator><pubDate>Sun, 01 Apr 2007 09:45:01 GMT</pubDate></item><item><title><![CDATA[Reply to inline -&amp;gt; unresolved external symbol on Sun, 01 Apr 2007 11:34:01 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class xyz
{
public:
	void	set_a	(bool b_sel)
         {
             this-&gt;_selected_ = b_sel
         }
	void	set_b	(std::string &amp;_lab)
         {
             this-&gt;p_text_displayed = new std::string(_label);
         }
	void	set_c	(std::string &amp;_str)
         {
             this-&gt;p_pathstring = new std::string(_str_path);
         }
}
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">class
{
...  //ohne &quot;inline&quot; keyword
}

inline void	xyz::set_a	(bool b_sel)
{
	this-&gt;_selected_ = b_sel;
}
inline void    xyz::set_b	(std::string &amp;_lab)		
{
	this-&gt;p_text_displayed = new std::string(_label);
}
inline void	xyz::set_c	(std::string &amp;_str)		
{
	this-&gt;p_pathstring = new std::string(_str_path);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1257087</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1257087</guid><dc:creator><![CDATA[netrobot]]></dc:creator><pubDate>Sun, 01 Apr 2007 11:34:01 GMT</pubDate></item><item><title><![CDATA[Reply to inline -&amp;gt; unresolved external symbol on Sun, 01 Apr 2007 11:41:19 GMT]]></title><description><![CDATA[<p>Achso, super, danke! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1257094</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1257094</guid><dc:creator><![CDATA[Top se]]></dc:creator><pubDate>Sun, 01 Apr 2007 11:41:19 GMT</pubDate></item><item><title><![CDATA[Reply to inline -&amp;gt; unresolved external symbol on Sun, 01 Apr 2007 12:10:22 GMT]]></title><description><![CDATA[<p>Ahhh, nein, so geht es leider immer noch nciht:</p>
<p>in Header:</p>
<pre><code class="language-cpp">class xyz
{
public:

void	set_a	(bool b_sel);
}
</code></pre>
<p>in der CPP:</p>
<pre><code class="language-cpp">inline	void	xyz::set_a	(bool b_sel)
{
	this-&gt;_selected_ = b_sel;
}
</code></pre>
<p>Ich bekomme immer noch den Fehler:</p>
<blockquote>
<p>unresolved external symbol &quot;public: void __thiscall xyzm::set_a(bool)&quot;</p>
</blockquote>
<p>Bei anderen Methoden funzt das mit dem inline einwandfrei, es ist sogar egal ob das &quot;inline&quot; in der Header steht, oder in der CPP bei der Definition, da gibts keine Probleme, nur mit den 3 angegeben.</p>
<p>Ach ja, und wenn ich sie nach Deiner ersten Methode &quot;richtig&quot; inline mache, also direkt in der Header definiere, dann gibts keine Probleme.</p>
<p>Vielen Dank schonmal!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1257123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1257123</guid><dc:creator><![CDATA[Top se]]></dc:creator><pubDate>Sun, 01 Apr 2007 12:10:22 GMT</pubDate></item><item><title><![CDATA[Reply to inline -&amp;gt; unresolved external symbol on Mon, 02 Apr 2007 06:16:23 GMT]]></title><description><![CDATA[<p>Weißt du, was &quot;inline&quot; bedeutet? Der Compiler ersetzt den Funktionsaufruf direkt durch den Inhalt der Funktion. Und das geht natürlich nur, wenn er den Inhalt der Funktion auch kennt.</p>
<p>(oder in Kurzform: Inline-Funktionen MUSST du im Header definieren)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1257732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1257732</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 02 Apr 2007 06:16:23 GMT</pubDate></item><item><title><![CDATA[Reply to inline -&amp;gt; unresolved external symbol on Mon, 02 Apr 2007 13:30:10 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class
{
...  //ohne &quot;inline&quot; keyword
}

inline void    xyz::set_a    (bool b_sel)
{
    this-&gt;_selected_ = b_sel;
}
inline void    xyz::set_b    (std::string &amp;_lab)       
{
    this-&gt;p_text_displayed = new std::string(_label);
}
inline void    xyz::set_c    (std::string &amp;_str)       
{
    this-&gt;p_pathstring = new std::string(_str_path);
</code></pre>
<p>alles in *.h</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1257983</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1257983</guid><dc:creator><![CDATA[netrobot]]></dc:creator><pubDate>Mon, 02 Apr 2007 13:30:10 GMT</pubDate></item><item><title><![CDATA[Reply to inline -&amp;gt; unresolved external symbol on Mon, 02 Apr 2007 14:23:30 GMT]]></title><description><![CDATA[<p>Okay, es scheint wirklich so zu sein, dass es ein Muss ist ... naja okay, dann mach ich es so, danke für die Erklärung!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1258023</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1258023</guid><dc:creator><![CDATA[Top se]]></dc:creator><pubDate>Mon, 02 Apr 2007 14:23:30 GMT</pubDate></item><item><title><![CDATA[Reply to inline -&amp;gt; unresolved external symbol on Mon, 02 Apr 2007 15:29:28 GMT]]></title><description><![CDATA[<p>Öhm.<br />
Ist das zusätzliche (unnötige) &quot;inline&quot; in der Klasse drinnen verboten? Oder wieso steht da &quot;//ohne &quot;inline&quot; keyword&quot;...?<br />
MSVC meckert nicht und ich schreibe das immer doppelt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1258062</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1258062</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 02 Apr 2007 15:29:28 GMT</pubDate></item><item><title><![CDATA[Reply to inline -&amp;gt; unresolved external symbol on Mon, 02 Apr 2007 16:34:21 GMT]]></title><description><![CDATA[<p>Nein, verboten ist es nicht, aber nutzlos <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/1258100</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1258100</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 02 Apr 2007 16:34:21 GMT</pubDate></item><item><title><![CDATA[Reply to inline -&amp;gt; unresolved external symbol on Mon, 02 Apr 2007 21:22:28 GMT]]></title><description><![CDATA[<p>Nein, nutzlos ist es nicht, da es dokumentiert dass irgendwo ne inline Implementierung steckt. Gerade wenn man .inl Files verwendet garnicht nutzlos...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1258210</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1258210</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 02 Apr 2007 21:22:28 GMT</pubDate></item><item><title><![CDATA[Reply to inline -&amp;gt; unresolved external symbol on Tue, 03 Apr 2007 06:17:01 GMT]]></title><description><![CDATA[<p>Der Compiler kann Inline-Funktionen nur auswerten, wenn er die komplette Definition zur Verfügung hat. Von daher wird er eine inline-Deklaration ohne Funktionsrumpf vermutlich ignorieren. Im Ergebnis bringt das inline an dieser Stelle nur etwas für andere Programmierer, die dein Programm lesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1258293</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1258293</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 03 Apr 2007 06:17:01 GMT</pubDate></item><item><title><![CDATA[Reply to inline -&amp;gt; unresolved external symbol on Tue, 03 Apr 2007 11:24:17 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>Der Compiler kann Inline-Funktionen nur auswerten, wenn er die komplette Definition zur Verfügung hat. Von daher wird er eine inline-Deklaration ohne Funktionsrumpf vermutlich ignorieren. Im Ergebnis bringt das inline an dieser Stelle nur etwas für andere Programmierer, die dein Programm lesen.</p>
</blockquote>
<p>Genau das meinte ich. Ich hab &quot;dokumentiert&quot; geschrieben. Was ist an &quot;dokumentieren&quot; unklar? Dass ich es nicht für den Compiler &quot;dokumentiere&quot; sondern für Programmierer die den Code lesen sollte klar sein...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1258479</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1258479</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 03 Apr 2007 11:24:17 GMT</pubDate></item><item><title><![CDATA[Reply to inline -&amp;gt; unresolved external symbol on Tue, 03 Apr 2007 11:40:56 GMT]]></title><description><![CDATA[<p>Was für einen Wissensgewinn soll es denn für einen Fremden haben, daß eine bestimmte Funktion inline sein <em>könnte</em> (ob der Compiler sie wirklich inline setzt, kannst du ohnehin nicht kontrollieren)? Und die Tatsache, daß diese Funktion existiert, sieht man auch ohne das inline Schlüsselwort.</p>
<p>Eidt: Und wenn die Funktion so kurz ist, kannst du sie auch gleich in der Klasse definieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1258499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1258499</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 03 Apr 2007 11:40:56 GMT</pubDate></item><item><title><![CDATA[Reply to inline -&amp;gt; unresolved external symbol on Tue, 03 Apr 2007 18:15:24 GMT]]></title><description><![CDATA[<p>z.B. den Wissensgewinn dass er die Implementierung im .inl File zu suchen hat und nicht im .cpp File.<br />
Aber man kann alles kleinreden.<br />
Und ja, ich tu' nix lieber als mich ständig zu wiederholen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1258768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1258768</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 03 Apr 2007 18:15:24 GMT</pubDate></item></channel></rss>