<?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[[SOLVED] Error LNK1120: 1 nicht aufgelöste Externe und Verweis auf nicht aufgelöstes externes Symbol]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich habe angefangen mit SDL ein Framework für Spiele zu schreiben. Ich habe dort eine Game Klasse gemacht, mit einem privaten Konstruktor und einer statischen Instanz der Klasse Game, sowie einer Funktion, mit der ich auf die statische Instanz zugreifen kann. Die Game Klasse ist also ein Singleton.</p>
<pre><code>// --- Game.h ---

// general structure of the game 

#ifndef __Game__
#define __Game__

#include &quot;Color.h&quot;
#include &quot;GameObject.h&quot;
#include &quot;Object.h&quot;
#include &quot;Player.h&quot;
#include &quot;SizeHandler.h&quot;
#include &quot;Standard.h&quot;
#include &quot;Texture.h&quot;
#include &quot;Vector2D.h&quot;
#include &quot;LoaderParams.h&quot;

class Game
{
	private:

		// private constructor

		Game();

		// static game instance

		static Game* sInstance;	

	public:		

		// -- static instance function --

		static Game* Instance()
		{
			if (sInstance == 0)
			{
				sInstance = new Game();

				return sInstance;
			}

			return sInstance;
		}		
};

#endif __Game__
</code></pre>
<p>Hier die Implementierung in der .cpp-Datei:</p>
<pre><code>// --- Game.cpp ---

// class Game

#include &quot;Game.h&quot;

// initialize static Game instance

Game* Game::sInstance = 0;

// Initialize, Event, Update, Draw, Clean ...
</code></pre>
<p>Ich habe da eigentlich noch eine Game-Loop programmiert, die ich jetzt aber aus dem Code rausgenommen hab, weil der Quellcode sonst zu unübersichtlich wäre, denke ich. Da wäre halt noch eine Initialize() Funktion und dann die Loop aus Event(), Update() und Draw() und zum Schluss noch eine Clean() Methode.</p>
<p>Wie man an den vielen #include Anweisungen erkennt habe ich auch Klassen für Texturen und Objekte programmiert, für Vektoren und für das Handling von Parametern, usw. Game-Objekte habe ich in einer polymorphen Vererbung geregelt, in der eine abstrakte Basisklasse die Struktur der abgeleiteten Klassen festlegt.</p>
<p>Ich weiß nicht, ob noch mehr Code notwendig ist. Jedenfalls sagt mir der Compiler folgendes:</p>
<p>Fehler 3 error LNK1120: 1 nicht aufgelöste Externe C:\Users\Ivan\Documents\Visual Studio 2012\Projects\C++\SDL\RoleJump\Debug\RoleJump.exe RoleJump</p>
<p>Fehler 2 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;&quot;private: __thiscall Game::Game(void)&quot; (??0Game@@AAE@XZ)&quot; in Funktion &quot;&quot;public: static class Game * __cdecl Game::Instance(void)&quot; (?Instance@Game@@SAPAV1@XZ)&quot;. C:\Users\Ivan\Documents\Visual Studio 2012\Projects\C++\SDL\RoleJump\RoleJump\main.obj RoleJump</p>
<p>Warnung 1 warning LNK4098: Standardbibliothek &quot;msvcrt.lib&quot; steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden. C:\Users\Ivan\Documents\Visual Studio 2012\Projects\C++\SDL\RoleJump\RoleJump\MSVCRTD.lib(cinitexe.obj) RoleJump</p>
<p>Das Problem scheint mit dem Konstruktor der Game Klasse zusammenzuhängen und mit der statischen Instant static Game* sInstance.</p>
<p>Ich weiß nicht, was das heißt und bin aus vielen anderen Beiträgen zu diesem Fehler nicht schlau geworden. Vielleicht kann mit hier ja jemand helfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/328346/solved-error-lnk1120-1-nicht-aufgelöste-externe-und-verweis-auf-nicht-aufgelöstes-externes-symbol</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Jul 2026 17:18:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/328346.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 04 Oct 2014 15:57:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [SOLVED] Error LNK1120: 1 nicht aufgelöste Externe und Verweis auf nicht aufgelöstes externes Symbol on Tue, 30 Dec 2014 21:41:38 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich habe angefangen mit SDL ein Framework für Spiele zu schreiben. Ich habe dort eine Game Klasse gemacht, mit einem privaten Konstruktor und einer statischen Instanz der Klasse Game, sowie einer Funktion, mit der ich auf die statische Instanz zugreifen kann. Die Game Klasse ist also ein Singleton.</p>
<pre><code>// --- Game.h ---

// general structure of the game 

#ifndef __Game__
#define __Game__

#include &quot;Color.h&quot;
#include &quot;GameObject.h&quot;
#include &quot;Object.h&quot;
#include &quot;Player.h&quot;
#include &quot;SizeHandler.h&quot;
#include &quot;Standard.h&quot;
#include &quot;Texture.h&quot;
#include &quot;Vector2D.h&quot;
#include &quot;LoaderParams.h&quot;

class Game
{
	private:

		// private constructor

		Game();

		// static game instance

		static Game* sInstance;	

	public:		

		// -- static instance function --

		static Game* Instance()
		{
			if (sInstance == 0)
			{
				sInstance = new Game();

				return sInstance;
			}

			return sInstance;
		}		
};

#endif __Game__
</code></pre>
<p>Hier die Implementierung in der .cpp-Datei:</p>
<pre><code>// --- Game.cpp ---

// class Game

#include &quot;Game.h&quot;

// initialize static Game instance

Game* Game::sInstance = 0;

// Initialize, Event, Update, Draw, Clean ...
</code></pre>
<p>Ich habe da eigentlich noch eine Game-Loop programmiert, die ich jetzt aber aus dem Code rausgenommen hab, weil der Quellcode sonst zu unübersichtlich wäre, denke ich. Da wäre halt noch eine Initialize() Funktion und dann die Loop aus Event(), Update() und Draw() und zum Schluss noch eine Clean() Methode.</p>
<p>Wie man an den vielen #include Anweisungen erkennt habe ich auch Klassen für Texturen und Objekte programmiert, für Vektoren und für das Handling von Parametern, usw. Game-Objekte habe ich in einer polymorphen Vererbung geregelt, in der eine abstrakte Basisklasse die Struktur der abgeleiteten Klassen festlegt.</p>
<p>Ich weiß nicht, ob noch mehr Code notwendig ist. Jedenfalls sagt mir der Compiler folgendes:</p>
<p>Fehler 3 error LNK1120: 1 nicht aufgelöste Externe C:\Users\Ivan\Documents\Visual Studio 2012\Projects\C++\SDL\RoleJump\Debug\RoleJump.exe RoleJump</p>
<p>Fehler 2 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;&quot;private: __thiscall Game::Game(void)&quot; (??0Game@@AAE@XZ)&quot; in Funktion &quot;&quot;public: static class Game * __cdecl Game::Instance(void)&quot; (?Instance@Game@@SAPAV1@XZ)&quot;. C:\Users\Ivan\Documents\Visual Studio 2012\Projects\C++\SDL\RoleJump\RoleJump\main.obj RoleJump</p>
<p>Warnung 1 warning LNK4098: Standardbibliothek &quot;msvcrt.lib&quot; steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden. C:\Users\Ivan\Documents\Visual Studio 2012\Projects\C++\SDL\RoleJump\RoleJump\MSVCRTD.lib(cinitexe.obj) RoleJump</p>
<p>Das Problem scheint mit dem Konstruktor der Game Klasse zusammenzuhängen und mit der statischen Instant static Game* sInstance.</p>
<p>Ich weiß nicht, was das heißt und bin aus vielen anderen Beiträgen zu diesem Fehler nicht schlau geworden. Vielleicht kann mit hier ja jemand helfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2420750</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420750</guid><dc:creator><![CDATA[huzzm]]></dc:creator><pubDate>Tue, 30 Dec 2014 21:41:38 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] Error LNK1120: 1 nicht aufgelöste Externe und Verweis auf nicht aufgelöstes externes Symbol on Sat, 04 Oct 2014 16:08:42 GMT]]></title><description><![CDATA[<p>Deine Klasse hat jetzt gar keinen Konstruktor. Dann kannst du auch kein Game Objekt erstellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2420752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420752</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Sat, 04 Oct 2014 16:08:42 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] Error LNK1120: 1 nicht aufgelöste Externe und Verweis auf nicht aufgelöstes externes Symbol on Sat, 04 Oct 2014 16:30:56 GMT]]></title><description><![CDATA[<pre><code>Game* Game::sInstance = 0;
</code></pre>
<p>Was solln das darstellen? Definiert wurde die Variable bereits in der headerdatei und auf Private Variablen kannst du ohnehin nicht von außen zugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2420753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420753</guid><dc:creator><![CDATA[tkausl]]></dc:creator><pubDate>Sat, 04 Oct 2014 16:30:56 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] Error LNK1120: 1 nicht aufgelöste Externe und Verweis auf nicht aufgelöstes externes Symbol on Sat, 04 Oct 2014 16:16:49 GMT]]></title><description><![CDATA[<p>tkausl schrieb:</p>
<blockquote>
<pre><code>Game* Game::sInstance = 0;
</code></pre>
<p>Was solln das darstellen?</p>
</blockquote>
<p>Eine Definition.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2420754</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420754</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Sat, 04 Oct 2014 16:16:49 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] Error LNK1120: 1 nicht aufgelöste Externe und Verweis auf nicht aufgelöstes externes Symbol on Sat, 04 Oct 2014 16:47:16 GMT]]></title><description><![CDATA[<p>Ich will die statische Instanz sInstance gleich Null setzen, und mit der Funktion Game::Instance() kann ich dann auf diese zugreifen oder nicht?</p>
<p>In der main.cpp habe ich folgendes programmiert:</p>
<pre><code>Game::Instance()-&gt;Initialize(...);

while(running)
{
   Game::Instance()-&gt;Update();
   (...)
}
(...)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2420761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420761</guid><dc:creator><![CDATA[huzzm]]></dc:creator><pubDate>Sat, 04 Oct 2014 16:47:16 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] Error LNK1120: 1 nicht aufgelöste Externe und Verweis auf nicht aufgelöstes externes Symbol on Sat, 04 Oct 2014 16:49:02 GMT]]></title><description><![CDATA[<p>tkausl schrieb:</p>
<blockquote>
<pre><code>Game* Game::sInstance = 0;
</code></pre>
<p>Was solln das darstellen? Definiert wurde die Variable bereits in der headerdatei und auf Private Variablen kannst du ohnehin nicht von außen zugreifen.</p>
</blockquote>
<p>Ohh stimmt, wie mach ich denn den Singleton der Game Klasse richtig?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2420762</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420762</guid><dc:creator><![CDATA[huzzm]]></dc:creator><pubDate>Sat, 04 Oct 2014 16:49:02 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] Error LNK1120: 1 nicht aufgelöste Externe und Verweis auf nicht aufgelöstes externes Symbol on Sat, 04 Oct 2014 16:52:40 GMT]]></title><description><![CDATA[<p>out schrieb:</p>
<blockquote>
<p>Deine Klasse hat jetzt gar keinen Konstruktor. Dann kannst du auch kein Game Objekt erstellen.</p>
</blockquote>
<p>Genau das will ich ja auch. Ich möchte nicht, dass man mehrere Game Instanzen erstellen kann. Es soll halt nur eine Instanz geben, nur ein Game. Und auf dieses statische Objekt will ich über die Methode Game::Instance() zugreifen können. Die Methode gibt mir ja die statische Instanz als Rückgabewert zurück, damit ich darauf zugreifen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2420764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420764</guid><dc:creator><![CDATA[huzzm]]></dc:creator><pubDate>Sat, 04 Oct 2014 16:52:40 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] Error LNK1120: 1 nicht aufgelöste Externe und Verweis auf nicht aufgelöstes externes Symbol on Sat, 04 Oct 2014 16:59:48 GMT]]></title><description><![CDATA[<p>huzzm schrieb:</p>
<blockquote>
<p>tkausl schrieb:</p>
<blockquote>
<pre><code>Game* Game::sInstance = 0;
</code></pre>
<p>Was solln das darstellen? Definiert wurde die Variable bereits in der headerdatei und auf Private Variablen kannst du ohnehin nicht von außen zugreifen.</p>
</blockquote>
<p>Ohh stimmt, wie mach ich denn den Singleton der Game Klasse richtig?</p>
</blockquote>
<p>Nix da &quot;stimmt&quot;, du machst das genau richtig. Jedenfalls soweit es den Einwand von tkausl angeht, ansonsten kann man über Singletons im Allgemeinen und diese Umsetzung im Besonderen natürlich diskutieren.</p>
<p>Auf deine ursprüngliche Frage: Der Konstruktor ist nicht implementiert. Du erzeugst in Instance ein Objekt der Klasse, dafür wird der benötigt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2420766</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420766</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Sat, 04 Oct 2014 16:59:48 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] Error LNK1120: 1 nicht aufgelöste Externe und Verweis auf nicht aufgelöstes externes Symbol on Sat, 04 Oct 2014 17:05:34 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<p>huzzm schrieb:</p>
<blockquote>
<p>tkausl schrieb:</p>
<blockquote>
<pre><code>Game* Game::sInstance = 0;
</code></pre>
<p>Was solln das darstellen? Definiert wurde die Variable bereits in der headerdatei und auf Private Variablen kannst du ohnehin nicht von außen zugreifen.</p>
</blockquote>
<p>Ohh stimmt, wie mach ich denn den Singleton der Game Klasse richtig?</p>
</blockquote>
<p>Nix da &quot;stimmt&quot;, du machst das genau richtig. Jedenfalls soweit es den Einwand von tkausl angeht, ansonsten kann man über Singletons im Allgemeinen und diese Umsetzung im Besonderen natürlich diskutieren.</p>
<p>Auf deine ursprüngliche Frage: Der Konstruktor ist nicht implementiert. Du erzeugst in Instance ein Objekt der Klasse, dafür wird der benötigt.</p>
</blockquote>
<p>Ich hab den Konstruktor ja nur auf private gesetzt, also kann die Methode Instance() ja auf den Konstruktor zugreifen oder? Muss ich etwas Bestimmtes mit dem Konstruktor machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2420770</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420770</guid><dc:creator><![CDATA[huzzm]]></dc:creator><pubDate>Sat, 04 Oct 2014 17:05:34 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] Error LNK1120: 1 nicht aufgelöste Externe und Verweis auf nicht aufgelöstes externes Symbol on Sat, 04 Oct 2014 17:16:47 GMT]]></title><description><![CDATA[<p>huzzm schrieb:</p>
<blockquote>
<p>Muss ich etwas Bestimmtes mit dem Konstruktor machen?</p>
</blockquote>
<p>Du musst ihn definieren. Implementieren. Sowas hinschreiben:</p>
<pre><code class="language-cpp">Game::Game() 
{
  // initialize stuff
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2420772</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420772</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Sat, 04 Oct 2014 17:16:47 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] Error LNK1120: 1 nicht aufgelöste Externe und Verweis auf nicht aufgelöstes externes Symbol on Sat, 04 Oct 2014 17:20:25 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<p>huzzm schrieb:</p>
<blockquote>
<p>Muss ich etwas Bestimmtes mit dem Konstruktor machen?</p>
</blockquote>
<p>Du musst ihn definieren. Implementieren. Sowas hinschreiben:</p>
<pre><code class="language-cpp">Game::Game() 
{
  // initialize stuff
}
</code></pre>
</blockquote>
<p>Stimmt, danke. Ich habe jetzt folgendes mal exemplarisch implementiert:</p>
<pre><code>Game::Game()
{
   cout &lt;&lt; &quot;hallo&quot; &lt;&lt; endl;
}
</code></pre>
<p>Dann erhalte ich aber folgende Fehlermeldung, die ich einfach mal überhaupt nicht raffe:</p>
<p>Fehler 1 error C2512: 'Texture': Kein geeigneter Standardkonstruktor verfügbar c:\users\ivan\documents\visual studio 2012\projects\c++\sdl\rolejump\rolejump\game.cpp 19 1 RoleJump</p>
<p>Wieseo plötzlich die Texture Klasse?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2420773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420773</guid><dc:creator><![CDATA[huzzm]]></dc:creator><pubDate>Sat, 04 Oct 2014 17:20:25 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] Error LNK1120: 1 nicht aufgelöste Externe und Verweis auf nicht aufgelöstes externes Symbol on Sat, 04 Oct 2014 17:28:57 GMT]]></title><description><![CDATA[<p>Das kann man aus dem bisher geposteten Code nicht beantworten. Es kann auch normalerweise nicht sein, dass der Fehler nach dieser Änderung aufgetreten ist, weil das vorher ein Linkerfehler war und jetzt ein Compilerfehler ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2420776</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420776</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Sat, 04 Oct 2014 17:28:57 GMT</pubDate></item><item><title><![CDATA[Reply to [SOLVED] Error LNK1120: 1 nicht aufgelöste Externe und Verweis auf nicht aufgelöstes externes Symbol on Sat, 04 Oct 2014 17:37:46 GMT]]></title><description><![CDATA[<p>Bashar schrieb:</p>
<blockquote>
<p>Das kann man aus dem bisher geposteten Code nicht beantworten. Es kann auch normalerweise nicht sein, dass der Fehler nach dieser Änderung aufgetreten ist, weil das vorher ein Linkerfehler war und jetzt ein Compilerfehler ist.</p>
</blockquote>
<p>Dann trotzdem danke schonmal für deine hilfreichen Antworten <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/2420778</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420778</guid><dc:creator><![CDATA[huzzm]]></dc:creator><pubDate>Sat, 04 Oct 2014 17:37:46 GMT</pubDate></item></channel></rss>