<?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++ mit Library, schaffe nicht mal Kompilierung]]></title><description><![CDATA[<p>Hallo beisammen,</p>
<p>ich habe bisher noch nie gegen eine Library gelinkt.<br />
Ich versuche mal zu erklären was ich machen möchte:</p>
<p>* Ich habe einen fertigen C++ code der einwandfrei kompiliert.<br />
* Ich habe einen 2ten C-code den ich kompilieren kann und der als Library verwendet werden kann.<br />
* Jetzt möchte ich in meinem C++ code Datenstrukturen und Funktionen aus der Library verwenden.</p>
<p>Ich dachte bisher ich kann es so machen:</p>
<p>- Library kompilieren und verfügbar machen<br />
- in meinem code einfach die datenstrukturen der library benutzen. dazu habe ich die Indludes aus dem library-code als pfad mit -I in meinem g++ compilier verfügbar gemacht.<br />
- am ende linke ich mit -L gegen die library.</p>
<p>Allerdings funktioniert das bei mir nicht. sobald ich eine datenstruktur<br />
setze sagt er: Fehler: »DieLIB_StructVector« wurde in diesem Gültigkeitsbereich nicht definiert.</p>
<p>MEINE FRAGEN:</p>
<ol>
<li>Was mache ich falsch?</li>
<li>Kann ich überhaupt eine in C geschriebene Lib in meinem C++ code kompilieren?</li>
<li>Sollte ich vielleicht den umgekehrten Weg gehen und einen C-code schreiben in dem ich dann meinen C++ code aufrufe?</li>
</ol>
<p>Danke für jede Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/288293/c-mit-library-schaffe-nicht-mal-kompilierung</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 01:27:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/288293.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 14 Jun 2011 08:27:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ mit Library, schaffe nicht mal Kompilierung on Tue, 14 Jun 2011 08:27:10 GMT]]></title><description><![CDATA[<p>Hallo beisammen,</p>
<p>ich habe bisher noch nie gegen eine Library gelinkt.<br />
Ich versuche mal zu erklären was ich machen möchte:</p>
<p>* Ich habe einen fertigen C++ code der einwandfrei kompiliert.<br />
* Ich habe einen 2ten C-code den ich kompilieren kann und der als Library verwendet werden kann.<br />
* Jetzt möchte ich in meinem C++ code Datenstrukturen und Funktionen aus der Library verwenden.</p>
<p>Ich dachte bisher ich kann es so machen:</p>
<p>- Library kompilieren und verfügbar machen<br />
- in meinem code einfach die datenstrukturen der library benutzen. dazu habe ich die Indludes aus dem library-code als pfad mit -I in meinem g++ compilier verfügbar gemacht.<br />
- am ende linke ich mit -L gegen die library.</p>
<p>Allerdings funktioniert das bei mir nicht. sobald ich eine datenstruktur<br />
setze sagt er: Fehler: »DieLIB_StructVector« wurde in diesem Gültigkeitsbereich nicht definiert.</p>
<p>MEINE FRAGEN:</p>
<ol>
<li>Was mache ich falsch?</li>
<li>Kann ich überhaupt eine in C geschriebene Lib in meinem C++ code kompilieren?</li>
<li>Sollte ich vielleicht den umgekehrten Weg gehen und einen C-code schreiben in dem ich dann meinen C++ code aufrufe?</li>
</ol>
<p>Danke für jede Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2077809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2077809</guid><dc:creator><![CDATA[Afaiko]]></dc:creator><pubDate>Tue, 14 Jun 2011 08:27:10 GMT</pubDate></item><item><title><![CDATA[Reply to C++ mit Library, schaffe nicht mal Kompilierung on Tue, 14 Jun 2011 08:49:14 GMT]]></title><description><![CDATA[<p>Was du falsch machst kann ich dir nicht genau sagen. Grundsätzlich kann man C-Libs mit C++ Programmen zusammenbinden.</p>
<p>- Deine Fehlermeldung sieht nach einem fehlenden &quot;#include&quot; in deinem Code aus.</p>
<p>- C-Funktionen kann man in C++ zwar verwenden, sie müssen aber als</p>
<pre><code>extern &quot;C&quot; int meineFunktion();
</code></pre>
<p>deklariert werden. Möglicherweise sind diese Deklarationen schon in der Lib vorhanden.</p>
<p>- Bibliotheken werden unter Unix mit &quot;-L &lt;Pfad zu den Libs&gt; -lmeineLib&quot; angegeben, wobei die Lib libmeineLib.a (pder auch .so) heißt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2077825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2077825</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Tue, 14 Jun 2011 08:49:14 GMT</pubDate></item><item><title><![CDATA[Reply to C++ mit Library, schaffe nicht mal Kompilierung on Tue, 14 Jun 2011 08:50:26 GMT]]></title><description><![CDATA[<p>Mit -L gibst du nur den Ort an, an dem die Lib liegt. Die lib selber linkst du dazu mit -lNameDerLib. Beim gcc und g++ wird implizit bei Libs das Praefix &quot;lib&quot; erwartet. Sprich bei -Lfoo -lmyLib sucht der Linker im Ordner foo nach der Lib libmyLib.[a|so]</p>
<p>Ausserdem solltest du beim inkludieren der Header dem Compiler noch sagen, dass der Code mit C Linkage erstellt wurde. Also extern &quot;C&quot; { #include &quot;foo.h&quot; } etc. Damit sagst du dem Compiler (genauer: Linker), dass die Objekte in C gelinkt wurden und er sucht nach C-Objektnamen (und nicht C++ Objektnamen, die bei Funktionen z.B. den Typ im Namen codieren).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2077829</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2077829</guid><dc:creator><![CDATA[this-*gt*that]]></dc:creator><pubDate>Tue, 14 Jun 2011 08:50:26 GMT</pubDate></item></channel></rss>