<?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[&amp;quot;undefined reference&amp;quot;]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich schreibe ein C++-Programm mit mehreren Klassen und benötige in einer Klasse die Funktion png_load aus png_load.h bzw. png_load.c. Die Funktion wird folgendermaßen in Zeile 283 aufgerufen:</p>
<pre><code class="language-cpp">png_load(&quot;/tmp/goboard.png&quot;, (GLubyte *)imgGoBoard);
</code></pre>
<p>Beim Linken kommt allerdings folgende Fehlermeldung:</p>
<pre><code>/home/cn/programmieren/c/Go/Debug/../src/T3DGoBoard.cpp:283: undefined reference to `png_load(char const*, unsigned char*)'
</code></pre>
<p>Normalerweise passiert das ja bei fehlenden Bibliotheken... In meinem Fall wird aber png_load.c fehlerfrei kompiliert:</p>
<pre><code>Building file: ../src/png_load.c
Invoking: GCC C Compiler
gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF&quot;src/png_load.d&quot; -MT&quot;src/png_load.d&quot; -o&quot;src/png_load.o&quot; &quot;../src/png_load.c&quot;
Finished building: ../src/png_load.c
</code></pre>
<p>Ich bin ziemlich ratlos woher das &quot;undefined reference&quot; kommen könnte und wäre sehr dankbar wenn mir jemand weiterhelfen könnte.</p>
<p>Grüße<br />
cn</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/190846/quot-undefined-reference-quot</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 20:53:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/190846.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 27 Aug 2007 16:06:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to &amp;quot;undefined reference&amp;quot; on Mon, 27 Aug 2007 16:06:53 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich schreibe ein C++-Programm mit mehreren Klassen und benötige in einer Klasse die Funktion png_load aus png_load.h bzw. png_load.c. Die Funktion wird folgendermaßen in Zeile 283 aufgerufen:</p>
<pre><code class="language-cpp">png_load(&quot;/tmp/goboard.png&quot;, (GLubyte *)imgGoBoard);
</code></pre>
<p>Beim Linken kommt allerdings folgende Fehlermeldung:</p>
<pre><code>/home/cn/programmieren/c/Go/Debug/../src/T3DGoBoard.cpp:283: undefined reference to `png_load(char const*, unsigned char*)'
</code></pre>
<p>Normalerweise passiert das ja bei fehlenden Bibliotheken... In meinem Fall wird aber png_load.c fehlerfrei kompiliert:</p>
<pre><code>Building file: ../src/png_load.c
Invoking: GCC C Compiler
gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF&quot;src/png_load.d&quot; -MT&quot;src/png_load.d&quot; -o&quot;src/png_load.o&quot; &quot;../src/png_load.c&quot;
Finished building: ../src/png_load.c
</code></pre>
<p>Ich bin ziemlich ratlos woher das &quot;undefined reference&quot; kommen könnte und wäre sehr dankbar wenn mir jemand weiterhelfen könnte.</p>
<p>Grüße<br />
cn</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353159</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353159</guid><dc:creator><![CDATA[cn]]></dc:creator><pubDate>Mon, 27 Aug 2007 16:06:53 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;undefined reference&amp;quot; on Mon, 27 Aug 2007 17:44:01 GMT]]></title><description><![CDATA[<p>vieleicht liegt es ja an der IDE und den vorgenommenen einstellungen. Du könntest ja mal versuchen, ob es klappt wenn du die c Datei in eine cpp umbenennst. Es ist ja ein C++ projekt. (Wenns dann klappt, dann weist du, dass es an der IDE bzw den einstellung gelegen hat)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353214</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353214</guid><dc:creator><![CDATA[Krux]]></dc:creator><pubDate>Mon, 27 Aug 2007 17:44:01 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;undefined reference&amp;quot; on Mon, 27 Aug 2007 18:06:53 GMT]]></title><description><![CDATA[<p>Danke, das war die Ursache <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> ! Mit dem Dateinamen png_load.cpp funktioniert es einwandfrei.</p>
<p>Vielen Dank!</p>
<p>Grüße<br />
cn</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353229</guid><dc:creator><![CDATA[cn]]></dc:creator><pubDate>Mon, 27 Aug 2007 18:06:53 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;undefined reference&amp;quot; on Mon, 27 Aug 2007 19:12:10 GMT]]></title><description><![CDATA[<p>irgendwie müsste man es aber auch hinbekommen, dass man die Datei auch datei.c benennen darf, als der Quelltext mit dem c compiler übersetzt wird, und dann gelinkt, aber welche einstellungen du da im genauen machen musst kann ich dir nicht sagen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353269</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353269</guid><dc:creator><![CDATA[Krux]]></dc:creator><pubDate>Mon, 27 Aug 2007 19:12:10 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;undefined reference&amp;quot; on Mon, 27 Aug 2007 19:52:04 GMT]]></title><description><![CDATA[<p>liegt es nicht eher am GCC? der erkennt doch standardmäßig an der endung, um welche sprache es sich handelt. Im Hilfe Teil der letzte parameter kann das glaube ich manuell angeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353304</guid><dc:creator><![CDATA[piXelshooter]]></dc:creator><pubDate>Mon, 27 Aug 2007 19:52:04 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;undefined reference&amp;quot; on Mon, 27 Aug 2007 19:59:59 GMT]]></title><description><![CDATA[<p>Also ich hätte jetzt an ein Problem mit fehlendem extern &quot;C&quot; gedacht.<br />
Weil ja offensichtlich das PNG ding in C ist, und der Header in C++ genutzt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353308</guid><dc:creator><![CDATA[Tada____S]]></dc:creator><pubDate>Mon, 27 Aug 2007 19:59:59 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;undefined reference&amp;quot; on Mon, 27 Aug 2007 20:01:43 GMT]]></title><description><![CDATA[<p>Krux schrieb:</p>
<blockquote>
<p>irgendwie müsste man es aber auch hinbekommen, dass man die Datei auch datei.c benennen darf, als der Quelltext mit dem c compiler übersetzt wird, und dann gelinkt, aber welche einstellungen du da im genauen machen musst kann ich dir nicht sagen.</p>
</blockquote>
<p>Als Entwicklungsumgebung verwende ich CDT (Eclipse). Die Entwicklungsumgebung übergibt im Wesentlichen bestimmte Schalter an das Kommandozeilenprogramm. D.h. möglicherweise gibt es bei GCC einen Schalter, der das Resultat &quot;C++-kompatibel&quot; macht. Aber momentan reicht mir die Lösung mit der anderen Dateiendung vollkommen aus und ich bin froh, dass es funktioniert. Die Manpage von GCC hat knapp 10 000 Zeilen. Da den richtigen Schalter zu finden überfordert mich etwas... <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="🙂"
    /> Dennoch wäre es interessant zu wissen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353310</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353310</guid><dc:creator><![CDATA[cn]]></dc:creator><pubDate>Mon, 27 Aug 2007 20:01:43 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;undefined reference&amp;quot; on Mon, 27 Aug 2007 20:12:36 GMT]]></title><description><![CDATA[<p>piXelshooter schrieb:</p>
<blockquote>
<p>liegt es nicht eher am GCC? der erkennt doch standardmäßig an der endung, um welche sprache es sich handelt. Im Hilfe Teil der letzte parameter kann das glaube ich manuell angeben.</p>
</blockquote>
<p>Momentan werden C-Dateien (<em>.c) mit dem &quot;GCC C Compiler&quot; übersetzt, CPP-Dateien (</em>.cpp) hingegen mit dem &quot;GCC C++ Compiler&quot;, was im Endeffekt ein und der selbe Übersetzer ist, aber abhängig von der Dateiendung unterschiedlich kompatible Ausgaben erzeugt. Welchen Hilfeteil meinst du konkret?</p>
<p>Tada____S schrieb:</p>
<blockquote>
<p>Also ich hätte jetzt an ein Problem mit fehlendem extern &quot;C&quot; gedacht.</p>
</blockquote>
<p>Danke! So funktioniert es jetzt auch gemischt! Damit wäre mein Problem elegant gelöst. <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/1353316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353316</guid><dc:creator><![CDATA[cn]]></dc:creator><pubDate>Mon, 27 Aug 2007 20:12:36 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;undefined reference&amp;quot; on Mon, 27 Aug 2007 20:20:34 GMT]]></title><description><![CDATA[<p>ich meinte den parameter -x &lt;language&gt; {c, c++, assembler, none}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1353320</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353320</guid><dc:creator><![CDATA[piXelshooter]]></dc:creator><pubDate>Mon, 27 Aug 2007 20:20:34 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;undefined reference&amp;quot; on Mon, 27 Aug 2007 20:27:10 GMT]]></title><description><![CDATA[<p>piXelshooter schrieb:</p>
<blockquote>
<p>ich meinte den parameter -x &lt;language&gt; {c, c++, assembler, none}</p>
</blockquote>
<p>Verstehe, jetzt ist klar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /> ! Danke für den Hinweis. Was ist nun sinnvoller? <em>extern &quot;C&quot;</em> oder <em>-x</em>?</p>
<p>PS: Das Forum hier ist echt gut! Hier sind zig Leute die sich auskennen <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/1353330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353330</guid><dc:creator><![CDATA[cn]]></dc:creator><pubDate>Mon, 27 Aug 2007 20:27:10 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;undefined reference&amp;quot; on Tue, 28 Aug 2007 05:16:38 GMT]]></title><description><![CDATA[<p>Wenn Du eine C-Funktion hast, compiliere sie mit einem C-Compiler. So war es vom Autor gedacht, so sollte es auch gemacht werden, zumal einige C-Programme in C++ nicht übersetzen werden. Wenn Du die Funktion in C++-Nutzen willst, packe extern &quot;C&quot; { ... } um den Header.</p>
<p>Wenn Du selbst ein C-Programm schreibst biete dem C++-Programmierer direkt an, es ohne Modifikationen benutzen zu können:</p>
<pre><code class="language-cpp">// myheader.h - Includeguards hier, bitte

#ifdef __cplusplus
extern &quot;C&quot; {
#endif

/* Hier der ganze Kram */

#ifdef __cplusplus
} // extern &quot;C&quot;
#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1353443</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1353443</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 28 Aug 2007 05:16:38 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;undefined reference&amp;quot; on Wed, 29 Aug 2007 11:29:18 GMT]]></title><description><![CDATA[<p>Gut, vielen Dank für die Information. Nachdem du jetzt einen Unterschied zwischen C und C++ beim Übersetzen erwähnst, worauf muss ich da konkret achten? Gibt es eine Liste von Unterschieden die man vermeiden sollte? Der Übersetzer ist ja eigentlich sowohl für C als auch für C++ der selbe (in meinem Fall GCC), wird also nur unterschiedlich aufgerufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1354475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1354475</guid><dc:creator><![CDATA[cn]]></dc:creator><pubDate>Wed, 29 Aug 2007 11:29:18 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;undefined reference&amp;quot; on Wed, 29 Aug 2007 11:51:05 GMT]]></title><description><![CDATA[<p>cn schrieb:</p>
<blockquote>
<p>piXelshooter schrieb:</p>
<blockquote>
<p>ich meinte den parameter -x &lt;language&gt; {c, c++, assembler, none}</p>
</blockquote>
<p>Verstehe, jetzt ist klar <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /> ! Danke für den Hinweis. Was ist nun sinnvoller? <em>extern &quot;C&quot;</em> oder <em>-x</em>?</p>
<p>PS: Das Forum hier ist echt gut! Hier sind zig Leute die sich auskennen <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>
</blockquote>
<p>Gut dass du das festgestellt hast, dann kannst du ja ein account anlegen, und die kommenden Anfängerfragen beantworten, damit das auch andere von diesem Forum denke <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/1354493</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1354493</guid><dc:creator><![CDATA[Krux]]></dc:creator><pubDate>Wed, 29 Aug 2007 11:51:05 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;undefined reference&amp;quot; on Wed, 29 Aug 2007 12:04:34 GMT]]></title><description><![CDATA[<p>Klar, mache ich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1354510</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1354510</guid><dc:creator><![CDATA[cn]]></dc:creator><pubDate>Wed, 29 Aug 2007 12:04:34 GMT</pubDate></item></channel></rss>