<?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[C Datei mit C++ Datei verlinken]]></title><description><![CDATA[<p>Hallo !<br />
Ich habe einen C++ Datei mit der ich jetzt ein C-Datei verlinken möchte.<br />
Jetzt meckert mein Dev-C++ Compiler mir die folgenden Fehler an:</p>
<p>In function <code>TTUIInit(int, char* \[Linker error\] undefined reference to</code>cssl_start()'</p>
<p>In function <code>TTUIInit(int, char**)': \[Linker error\] undefined reference to</code>cssl_open(char const*, void (<em>)(int, unsigned char</em>, int), int, int, int, int, int)'</p>
<p>ld returned 1 exit status<br />
[ttgui] Error 1</p>
<p>Was kann ich dagegen tun ?<br />
Muss ich irgendwas beachten beim Linken von C und C++ Dateien..??</p>
<p>Desweitern habe ich noch einen Make File, indem ich dieses da stehen habe:</p>
<p>cssl.o: cssl.c<br />
$(CC) -Wall -D_GNU_SOURCE -c cssl.c -o cssl.o $(CXXFLAGS)</p>
<p>Was bedeutet das -Wall -D_GNU_SOURCE ??</p>
<p>Ich bin dankbar für jede Hilfe...<br />
mfg macke_a</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/189672/c-datei-mit-c-datei-verlinken</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 09:47:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/189672.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 15 Aug 2007 17:06:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C Datei mit C++ Datei verlinken on Wed, 15 Aug 2007 17:06:47 GMT]]></title><description><![CDATA[<p>Hallo !<br />
Ich habe einen C++ Datei mit der ich jetzt ein C-Datei verlinken möchte.<br />
Jetzt meckert mein Dev-C++ Compiler mir die folgenden Fehler an:</p>
<p>In function <code>TTUIInit(int, char* \[Linker error\] undefined reference to</code>cssl_start()'</p>
<p>In function <code>TTUIInit(int, char**)': \[Linker error\] undefined reference to</code>cssl_open(char const*, void (<em>)(int, unsigned char</em>, int), int, int, int, int, int)'</p>
<p>ld returned 1 exit status<br />
[ttgui] Error 1</p>
<p>Was kann ich dagegen tun ?<br />
Muss ich irgendwas beachten beim Linken von C und C++ Dateien..??</p>
<p>Desweitern habe ich noch einen Make File, indem ich dieses da stehen habe:</p>
<p>cssl.o: cssl.c<br />
$(CC) -Wall -D_GNU_SOURCE -c cssl.c -o cssl.o $(CXXFLAGS)</p>
<p>Was bedeutet das -Wall -D_GNU_SOURCE ??</p>
<p>Ich bin dankbar für jede Hilfe...<br />
mfg macke_a</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1345189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1345189</guid><dc:creator><![CDATA[macke_a]]></dc:creator><pubDate>Wed, 15 Aug 2007 17:06:47 GMT</pubDate></item><item><title><![CDATA[Reply to C Datei mit C++ Datei verlinken on Wed, 15 Aug 2007 17:13:14 GMT]]></title><description><![CDATA[<p>Hat nichts mit purem C++ zu tun ... davon abgesehen sollte -<em>W</em><strong>all</strong> für Warnings: all stehen ... d.h. er soll auch kleinigkeiten durch Warnungen hervorheben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1345191</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1345191</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Wed, 15 Aug 2007 17:13:14 GMT</pubDate></item><item><title><![CDATA[Reply to C Datei mit C++ Datei verlinken on Wed, 15 Aug 2007 17:59:36 GMT]]></title><description><![CDATA[<p>Muss man den Irgendetwas beachten, wenn ich eine C-Datei mit einer C++ Datei verlinke? Bei mir läuft das nicht. Binde ich die C-Datei mit einer anderen C-Datei zusammen, dann mekert der selbe Compiler nicht!!</p>
<p>Ne Idee, was da los ist ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1345214</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1345214</guid><dc:creator><![CDATA[macke_a]]></dc:creator><pubDate>Wed, 15 Aug 2007 17:59:36 GMT</pubDate></item><item><title><![CDATA[Reply to C Datei mit C++ Datei verlinken on Wed, 15 Aug 2007 18:04:47 GMT]]></title><description><![CDATA[<p>C++ besitzt ein anderes Naming-Schema als C, um eben Klassen-Methoden und Parameter-Überladung zu erlauben. Daher musst du dem Compiler explizit sagen, das es sich bei den Funktionen um C-Funktionen handelt. Das geht mit <code>extern &quot;C&quot; { }</code></p>
<p>zB</p>
<pre><code class="language-cpp">#ifdef __cplusplus
extern &quot;C&quot; {
#endif

  void cfunc();

#ifdef __cplusplus
}
#endif
</code></pre>
<p>(btw. Dev-C++ wird afaik nicht weiter entwickelt. Schau dir vielleicht mal Code::Blocks an. Das nutzt den gleichen Compiler wie Dev-C++)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1345217</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1345217</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Wed, 15 Aug 2007 18:04:47 GMT</pubDate></item><item><title><![CDATA[Reply to C Datei mit C++ Datei verlinken on Thu, 16 Aug 2007 07:20:34 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>die Linker-Fehlermeldung sieht aber nicht unbedingt nach einem name-mangeling-Problem aus.</p>
<p>@macke_a: &quot;Wierum&quot; hast Du den Sprachwechsel:</p>
<ul>
<li>cssl_start() und cssl_open() sind in C definiert und werden von einem C++-Modul aus aufgerufen ? oder:</li>
<li>cssl_start() und cssl_open() sind in C++ definiert und werden von einem C-Modul aus aufgerufen ?</li>
</ul>
<p>Im ersten Fall hast Du vermutlich ein Problem mit den Compile/Link-Parametern, sonst vermutlich tatsächlich das von rüdiger angesprochene Problem.</p>
<p>Ich tippe allerdings auf Ersteres und darauf, dass Du die Implementierung der Funktionen dem Linker nicht zur Verfügung stellst (in Form einer lib oder eines obj).</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1345499</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1345499</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 16 Aug 2007 07:20:34 GMT</pubDate></item><item><title><![CDATA[Reply to C Datei mit C++ Datei verlinken on Thu, 16 Aug 2007 07:31:58 GMT]]></title><description><![CDATA[<p>@ Simon2</p>
<p>Genau diesen Fall habe ich !!!!</p>
<p>cssl_start() und cssl_open() sind in C definiert und werden von einem C++-Modul aus aufgerufen !</p>
<p>In meinem Makefile(Ausschnitt)</p>
<p>OBJ = ttgui.o CUIMYButton.o CUIMbt.o CUILed.o cssl.o $(RES)<br />
LINKOBJ = ttgui.o CUIMYButton.o CUIMbt.o CUILed.o cssl.o $(RES)</p>
<p>cssl.o: cssl.c<br />
$(CC) -c cssl.c -o cssl.o $(-I/usr/local/include)</p>
<p>stelle ich ihm die Objekt Datei zur Verfügung !</p>
<p>Das ist alles schon geschehen!</p>
<p>Erst hat er in meinem Pfad (-I/usr/local/include) die fcntl.h Header Datei n. gefunden!<br />
Jetzt habe ich diese nachträglich eingefügt !</p>
<p>Jetzt erfolgt wieder eine Fehlermeldung:<br />
21:3 s:\local\include\fcntl.h #error &quot;Never use &lt;bits/fcntl.h&gt; directly; include &lt;fcntl.h&gt; instead.&quot;</p>
<p>Obwohl ich in meiner cssl.c Datei<br />
#include &lt;fcnthl.h&gt; schreibe !!!</p>
<p>Ich dreh durch, ich finde einfach den Fehler nicht !!!</p>
<p>Gruss macke_a</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1345513</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1345513</guid><dc:creator><![CDATA[macke_a]]></dc:creator><pubDate>Thu, 16 Aug 2007 07:31:58 GMT</pubDate></item><item><title><![CDATA[Reply to C Datei mit C++ Datei verlinken on Thu, 16 Aug 2007 07:35:36 GMT]]></title><description><![CDATA[<p>Woher hast du denn die fcntl.h Datei, die du dort verwendet hast? zufällig aus dem Verzeichnis 'bits' rauskopiert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1345516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1345516</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 16 Aug 2007 07:35:36 GMT</pubDate></item><item><title><![CDATA[Reply to C Datei mit C++ Datei verlinken on Thu, 16 Aug 2007 07:44:43 GMT]]></title><description><![CDATA[<p>Hallo !</p>
<p>Es kann wohl sein, dass ich die Datei dort her habe so genau weis ich das nicht mehr! Kann das ein Problem sein ?</p>
<p>Falls ja, wo bekomme ich sonst die Header Datei her ?</p>
<p>Gruss macke_a</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1345519</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1345519</guid><dc:creator><![CDATA[macke_a]]></dc:creator><pubDate>Thu, 16 Aug 2007 07:44:43 GMT</pubDate></item><item><title><![CDATA[Reply to C Datei mit C++ Datei verlinken on Thu, 16 Aug 2007 07:52:43 GMT]]></title><description><![CDATA[<p>macke_a schrieb:</p>
<blockquote>
<p>Hallo !</p>
<p>Es kann wohl sein, dass ich die Datei dort her habe so genau weis ich das nicht mehr! Kann das ein Problem sein ?</p>
</blockquote>
<p>Ja, das kann ein Problem sein - diese Datei erwartet nämlich offenbar, daß sie von einer anderen &lt;fcntl.h&gt; aus eingebunden wird, die einige Definitionen vorbereiten soll. (ja, sowas ist schlechtes Design - aber sag das mal dem Autor der fcntl.h ;))</p>
<blockquote>
<p>Falls ja, wo bekomme ich sonst die Header Datei her ?</p>
</blockquote>
<p>Wo hast du denn diese Version ursprünglich herbekommen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1345525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1345525</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 16 Aug 2007 07:52:43 GMT</pubDate></item><item><title><![CDATA[Reply to C Datei mit C++ Datei verlinken on Thu, 16 Aug 2007 08:04:59 GMT]]></title><description><![CDATA[<p>macke_a schrieb:</p>
<blockquote>
<p>@ Simon2</p>
<p>Genau diesen Fall habe ich !!!!<br />
...</p>
</blockquote>
<p>Ach so, wenn Du die cssl.c selbst compilierst, musst Du sicherstellen, dass es <em>dabei</em> nicht zu name-mangeling kommt (sollte ein guter Designer der cssl.c zwar machen, aber leider ist das nicht immer der Fall).<br />
Ich würde mir mal das cssl.o mit einem Hexfähigen Editor ansehen. Wenn da &quot;cssl_start&quot; drinsteht, wird das mit C-Namenskonvention compiliert. Wenn dagegen der Name eher &quot;_Z10cssl_startv&quot; lautet, dann hat dort der C++-Compiler Signaturinformationen &quot;reinge-mangle-d&quot; und beim Linken des ttgui.o findet er das Symbol &quot;cssl_start&quot; natürlich nicht...</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1345531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1345531</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 16 Aug 2007 08:04:59 GMT</pubDate></item></channel></rss>