<?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[Extern C korrekt kompilieren für user]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Anwendung in C++ die gegen eine Bibliothek linkt die in C geschrieben ist. Mit dem Linken klappt alles wunderbar. Zusätzlich binden meine<br />
Sourcen eine header-datei ein die nur aus einem</p>
<pre><code class="language-cpp">extern &quot;C&quot;
{
    #include &quot;../&lt;bib ordner&gt;/Include/&lt;datei&gt;.h&quot;
}
</code></pre>
<p>besteht. Jetzt frage ich mich aber wenn der user die bib ganz wo anders hat liegt auch die Datei &lt;datei&gt;.h mit dem Ordner wo anders. Und ich will jetzt nicht dass jeder User extra immer diese headerdatei anpassen muss damit er &lt;datei&gt;.h findet.</p>
<p>Wie macht man es denn normalerweise? Gibt es dafür eine passende Lösung?</p>
<p>Danke <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/topic/228855/extern-c-korrekt-kompilieren-für-user</link><generator>RSS for Node</generator><lastBuildDate>Mon, 28 Sep 2026 03:26:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/228855.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 03 Dec 2008 16:04:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Extern C korrekt kompilieren für user on Wed, 03 Dec 2008 16:04:02 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Anwendung in C++ die gegen eine Bibliothek linkt die in C geschrieben ist. Mit dem Linken klappt alles wunderbar. Zusätzlich binden meine<br />
Sourcen eine header-datei ein die nur aus einem</p>
<pre><code class="language-cpp">extern &quot;C&quot;
{
    #include &quot;../&lt;bib ordner&gt;/Include/&lt;datei&gt;.h&quot;
}
</code></pre>
<p>besteht. Jetzt frage ich mich aber wenn der user die bib ganz wo anders hat liegt auch die Datei &lt;datei&gt;.h mit dem Ordner wo anders. Und ich will jetzt nicht dass jeder User extra immer diese headerdatei anpassen muss damit er &lt;datei&gt;.h findet.</p>
<p>Wie macht man es denn normalerweise? Gibt es dafür eine passende Lösung?</p>
<p>Danke <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/1625003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1625003</guid><dc:creator><![CDATA[Fragö]]></dc:creator><pubDate>Wed, 03 Dec 2008 16:04:02 GMT</pubDate></item><item><title><![CDATA[Reply to Extern C korrekt kompilieren für user on Wed, 03 Dec 2008 17:19:17 GMT]]></title><description><![CDATA[<p>Warum soll ein USER Deine Anwendung neu übersetzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1625039</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1625039</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Wed, 03 Dec 2008 17:19:17 GMT</pubDate></item><item><title><![CDATA[Reply to Extern C korrekt kompilieren für user on Wed, 03 Dec 2008 17:47:06 GMT]]></title><description><![CDATA[<p>Wenn der User die Datei.h einfach woanders hinschiebt sollte das aber nicht dein Problem sein. Wie will man das verhindern? Was ist wenn er sie löscht?<br />
Der muss sich an die Struktur halten, wenn nicht, sein Problem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1625046</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1625046</guid><dc:creator><![CDATA[putztefell]]></dc:creator><pubDate>Wed, 03 Dec 2008 17:47:06 GMT</pubDate></item><item><title><![CDATA[Reply to Extern C korrekt kompilieren für user on Thu, 04 Dec 2008 15:09:39 GMT]]></title><description><![CDATA[<p>Danke euch für eure Antworten.</p>
<p>Es ist etwas anders: Die Bibliothek liefere ich mit meiner Anwendung NICHT aus. Das heißt der user muss sich die Bib erst runterladen und dann kompilieren. Er kann den Ordner mit der gesamten Bibliothek ganz wo anders haben und in dem ordner liegt dann auch das file &lt;datei&gt;.h drin.</p>
<p>Geht das irgendwie ohne das der User das file ändern muss und neu kompilieren muss?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1625489</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1625489</guid><dc:creator><![CDATA[Fragö]]></dc:creator><pubDate>Thu, 04 Dec 2008 15:09:39 GMT</pubDate></item><item><title><![CDATA[Reply to Extern C korrekt kompilieren für user on Thu, 04 Dec 2008 15:52:59 GMT]]></title><description><![CDATA[<p>Änder die Anweisung in #include &quot;&lt;datei&gt;.h&quot;<br />
Mal ne Frage: Ist das ein Windows-System? Da sind doch &lt; und &gt; im Dateinamen gar nicht erlaubt?</p>
<p>Dann soll der User sich seine Headerdateien hinlegen, wo er will, und muß dann dem Compiler über entsprechende Optionen die Verzeichnisse mitteilen, wo nach Header-Dateien gesucht werden soll.</p>
<p>Oder aber noch einfacher: Er legt sich die Datei in das Verzeichnis mit den anderen Source-Dateien, die kompiliert werden müssen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1625518</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1625518</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Thu, 04 Dec 2008 15:52:59 GMT</pubDate></item><item><title><![CDATA[Reply to Extern C korrekt kompilieren für user on Thu, 04 Dec 2008 18:04:45 GMT]]></title><description><![CDATA[<p>Üblicherweise findet man sowas in C-Bibliotheken:</p>
<pre><code class="language-cpp">#ifdef __cplusplus // bin mir grad nicht 100% sicher bezüglich des namens
extern &quot;C&quot; {
#endif

/* rest des headers */

#ifdef __cplusplus
} // extern &quot;C&quot;
#endif
</code></pre>
<p>Dann muss der User garnichts machen und ein C-Compiler ignoriert extern &quot;C&quot; einfach.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1625579</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1625579</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 04 Dec 2008 18:04:45 GMT</pubDate></item><item><title><![CDATA[Reply to Extern C korrekt kompilieren für user on Mon, 08 Dec 2008 09:51:44 GMT]]></title><description><![CDATA[<p>Erstmal danke für die Hilfe.</p>
<blockquote>
<p>Änder die Anweisung in #include &quot;&lt;datei&gt;.h&quot;<br />
Mal ne Frage: Ist das ein Windows-System? Da sind doch &lt; und &gt; im Dateinamen gar nicht erlaubt?</p>
<p>Dann soll der User sich seine Headerdateien hinlegen, wo er will, und muß dann dem Compiler über entsprechende Optionen die Verzeichnisse mitteilen, wo nach Header-Dateien gesucht werden soll.</p>
</blockquote>
<p>Habe ich das jetzt richtig vertstanden dass ich einfach meine Headerdatei (die von meinen anderen sourcen eingebunden wird) so schreiben sollte:</p>
<pre><code class="language-cpp">extern &quot;C&quot;
{
    #include &quot;&lt;datei&gt;.h&quot;
}
</code></pre>
<p>(Ich befinde mich tatsächlich auf einem Linuxsystem.)</p>
<p>Wie teile ich (bzw.der User) dann dem Compiler mit wo das file &quot;&lt;datei&gt;.h&quot; denn liegt? So muss der user aber dann das Makefile ändern (oder die Konfig-datei welche das makefile erstellt) oder?</p>
<p>Habe ich das so richtig verstanden?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1626842</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1626842</guid><dc:creator><![CDATA[Fragö]]></dc:creator><pubDate>Mon, 08 Dec 2008 09:51:44 GMT</pubDate></item><item><title><![CDATA[Reply to Extern C korrekt kompilieren für user on Mon, 08 Dec 2008 10:13:48 GMT]]></title><description><![CDATA[<p>Du solltest das extern &quot;C&quot; so wie gezeigt direkt in &quot;&lt;datei.h&gt;&quot; einfügen.</p>
<p>Der User teilt dem Compiler mit, wo Include-Dateien liegen, indem er den Parameter -I angibt. So wie bei &quot;normalen&quot; Bibliotheken auch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1626856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1626856</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Mon, 08 Dec 2008 10:13:48 GMT</pubDate></item><item><title><![CDATA[Reply to Extern C korrekt kompilieren für user on Mon, 08 Dec 2008 11:07:55 GMT]]></title><description><![CDATA[<p>Jetzt verstehe ich was du meinst. Allerdings liegt da folgendes Problem: Die Datei &lt;datei.h&gt; ist in einer Bibliothek die ich mit meiner Anwendung nicht mitliefere. Der user muss sich die Bib erst downloaden. Somit bringt es nix das file &lt;datei.h&gt; zu editieren.</p>
<p>Gäbe es vielleicht doch noch eine Möglichkeit sinnvoller zu gestalten als wie ich bisher...?</p>
<p>Oder habe ich immer noch was falsch verstanden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1626885</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1626885</guid><dc:creator><![CDATA[Fragö]]></dc:creator><pubDate>Mon, 08 Dec 2008 11:07:55 GMT</pubDate></item><item><title><![CDATA[Reply to Extern C korrekt kompilieren für user on Tue, 09 Dec 2008 11:22:35 GMT]]></title><description><![CDATA[<p>*push*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1627542</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1627542</guid><dc:creator><![CDATA[Fragö]]></dc:creator><pubDate>Tue, 09 Dec 2008 11:22:35 GMT</pubDate></item><item><title><![CDATA[Reply to Extern C korrekt kompilieren für user on Tue, 09 Dec 2008 15:48:09 GMT]]></title><description><![CDATA[<p>Fragö schrieb:</p>
<blockquote>
<p>Gäbe es vielleicht doch noch eine Möglichkeit sinnvoller zu gestalten als wie ich bisher...?</p>
</blockquote>
<p>Wenn ich alles richtig verstanden habe, dann: Nein.</p>
<p>Wenn ein User sich Dateien besorgt, die er zur Erstellung einer Anwendung benötigt, dann hast Du als Download-Anbieter keinen Einfluß darauf, wie er die Dateien auf seiner Platte verteilt.<br />
Er könnte jede Datei in ein anderes Verzeichnis speichern.<br />
Darauf kann man sich nicht generell vorbereiten.</p>
<p>Ich würde wie gesagt erst mal davon ausgehen, daß alle Dateien, die zur Programmerstellung benötigt werden, in einem Verzeichnis liegen (ausgenommen Dateien, die zur Entwicklungsumgebung gehören, wie string, vector usw.).<br />
Dann brauchst Du in Deiner #include - Anweisung keine Pfadangabe, sondern nur den Dateinamen.<br />
Sollte es aus Gründen der Komplexität der Anwendung geboten sein, die Quell/Headerdateien in verschiedenen Verzeichnissen zu verwalten, kannst Du im MakeFile eine Variable auf das oberste Verzeichnis setzen, unter dem dann die bekannte vorgegebene Struktur erwartet wird.<br />
Der User muß dann diese Variable auf das passende Verzeichnis setzen.</p>
<p>Aber ganz ohne User-Zutun wirst Du das sonst kaum lösen können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1627712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1627712</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Tue, 09 Dec 2008 15:48:09 GMT</pubDate></item></channel></rss>