<?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 und C++ mixen]]></title><description><![CDATA[<p>Ich will in einem Programm C und C++ mixen.<br />
Dazu soll man ja:<br />
-&gt;main() mit dem C++ Compiler compilen<br />
-&gt;den Linkervorgang vom C++ Compiler machen lassen</p>
<p>Ich rufe nun in main eine C Funktion auf, die ich im Headerfile sample.h includiere.<br />
Diese include Anweisung habe ich in einen 'extern &quot;C&quot; Block' gewrappt</p>
<pre><code>//sample.cpp
extern &quot;C&quot;
{
    //Deklartion [i]und[/i] Definitionen!!
    #include &lt;sample.h&gt;
}

int main()
{
//...
}
</code></pre>
<p>(Die Funktionen sind in sample.h nicht nur deklariert, sondern auch definiert.)</p>
<p>Trotzdem kommen zahlreiche errors, wenn ich sample.cpp mit dem C++ Compiler compile.</p>
<pre><code>UniX:~/Desktop/h4/project$ g++ sample.cpp
In file included from sample.cpp:17:
/home/raptor/Desktop/h4/project/sample.h: In function `void setsignal()':
/home/raptor/Desktop/h4/project/sample.h:88: error: invalid conversion from `void (*)()' to `void (*)(int)'
/home/raptor/Desktop/h4/project/sample.h:88: error:   initializing argument 2 of `void (* signal(int, void (*)(int)))(int)'
/home/raptor/Desktop/h4/project/sample.h: In function `void shell(SSH_SESSION*)':
/home/raptor/Desktop/h4/project/sample.h:173: error: invalid conversion from `void (*)()' to `void (*)(int)'
/home/raptor/Desktop/h4/project/sample.h:173: error:   initializing argument 2 of `void (* signal(int, void (*)(int)))(int)'
</code></pre>
<p>Mit dem C Compiler wird alles fehlerlos uebersetzt.<br />
Wie muss ich meine Compiler(gcc und g++) steuern, damit mein Programm korrekt uebersetzt und gelinkt wird(Womit muss ich das C Header File compilen? Muss ich es schon irgnedwie vorcompilieren?)?</p>
<p>thx in advance</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/119142/c-und-c-mixen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 18:23:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/119142.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 28 Aug 2005 16:33:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C und C++ mixen on Sun, 28 Aug 2005 16:44:17 GMT]]></title><description><![CDATA[<p>Ich will in einem Programm C und C++ mixen.<br />
Dazu soll man ja:<br />
-&gt;main() mit dem C++ Compiler compilen<br />
-&gt;den Linkervorgang vom C++ Compiler machen lassen</p>
<p>Ich rufe nun in main eine C Funktion auf, die ich im Headerfile sample.h includiere.<br />
Diese include Anweisung habe ich in einen 'extern &quot;C&quot; Block' gewrappt</p>
<pre><code>//sample.cpp
extern &quot;C&quot;
{
    //Deklartion [i]und[/i] Definitionen!!
    #include &lt;sample.h&gt;
}

int main()
{
//...
}
</code></pre>
<p>(Die Funktionen sind in sample.h nicht nur deklariert, sondern auch definiert.)</p>
<p>Trotzdem kommen zahlreiche errors, wenn ich sample.cpp mit dem C++ Compiler compile.</p>
<pre><code>UniX:~/Desktop/h4/project$ g++ sample.cpp
In file included from sample.cpp:17:
/home/raptor/Desktop/h4/project/sample.h: In function `void setsignal()':
/home/raptor/Desktop/h4/project/sample.h:88: error: invalid conversion from `void (*)()' to `void (*)(int)'
/home/raptor/Desktop/h4/project/sample.h:88: error:   initializing argument 2 of `void (* signal(int, void (*)(int)))(int)'
/home/raptor/Desktop/h4/project/sample.h: In function `void shell(SSH_SESSION*)':
/home/raptor/Desktop/h4/project/sample.h:173: error: invalid conversion from `void (*)()' to `void (*)(int)'
/home/raptor/Desktop/h4/project/sample.h:173: error:   initializing argument 2 of `void (* signal(int, void (*)(int)))(int)'
</code></pre>
<p>Mit dem C Compiler wird alles fehlerlos uebersetzt.<br />
Wie muss ich meine Compiler(gcc und g++) steuern, damit mein Programm korrekt uebersetzt und gelinkt wird(Womit muss ich das C Header File compilen? Muss ich es schon irgnedwie vorcompilieren?)?</p>
<p>thx in advance</p>
]]></description><link>https://www.c-plusplus.net/forum/post/860176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860176</guid><dc:creator><![CDATA[Raptor]]></dc:creator><pubDate>Sun, 28 Aug 2005 16:44:17 GMT</pubDate></item><item><title><![CDATA[Reply to C und C++ mixen on Sun, 28 Aug 2005 17:11:13 GMT]]></title><description><![CDATA[<p>Raptor schrieb:</p>
<blockquote>
<p>(Die Funktionen sind in sample.h nicht nur deklariert, sondern auch definiert.)</p>
</blockquote>
<p>Hab das noch nie probiert aber du sagst das die funktionen im header nicht nur declariert sondern auch implementiert sind müssen sie wahrscheinlich auch der c++ syntax folgen da sich das extern&quot;C&quot; ja nur auf das namemangling bezieht.<br />
Ich würde die funktionen im header nur declarieren und in einem separaten .c -file implementieren und dann zum projekt dazulinken.<br />
Kurt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/860201</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860201</guid><dc:creator><![CDATA[ZuK]]></dc:creator><pubDate>Sun, 28 Aug 2005 17:11:13 GMT</pubDate></item><item><title><![CDATA[Reply to C und C++ mixen on Sun, 28 Aug 2005 17:11:53 GMT]]></title><description><![CDATA[<p>Es gibt da zwei Wege: Du &quot;reinigst&quot; Dein C von allem, was der C++ Compiler, wegen seines strikteren Type-Handlings nicht mag oder:</p>
<p>Du schreibtst die die Deklarationen der C-Funktionen in einen Header, bindest ihn ein und compilierst den C-File (mit den eigentlichen Sources) als C. Dem Linker natuerlich nicht vergessen zu sagen, dass dort eine Objectdatei einzubinden ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/860203</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860203</guid><dc:creator><![CDATA[MBCS-CITP]]></dc:creator><pubDate>Sun, 28 Aug 2005 17:11:53 GMT</pubDate></item><item><title><![CDATA[Reply to C und C++ mixen on Sun, 28 Aug 2005 17:56:44 GMT]]></title><description><![CDATA[<p>Genau. So etwas hatte ich vermutet. Erst das C File mit dem gcc kompilieren und dann dazulinken. Ich weiss nur leider nicht, welche gcc Optionen icb brauche. Hab das noch nie gemacht.<br />
Kann mir kurz jemand dabei helfen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/860232</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860232</guid><dc:creator><![CDATA[Raptor]]></dc:creator><pubDate>Sun, 28 Aug 2005 17:56:44 GMT</pubDate></item><item><title><![CDATA[Reply to C und C++ mixen on Sun, 28 Aug 2005 18:18:08 GMT]]></title><description><![CDATA[<p>Raptor schrieb:</p>
<blockquote>
<p>Genau. So etwas hatte ich vermutet. Erst das C File mit dem gcc kompilieren und dann dazulinken. Ich weiss nur leider nicht, welche gcc Optionen icb brauche. Hab das noch nie gemacht.<br />
Kann mir kurz jemand dabei helfen?</p>
</blockquote>
<p>Keine besonderen optionen<br />
gcc für c-files<br />
g++ für c++-files<br />
Kurt</p>
<p>edit: Beispiel<br />
gcc -c shape.c<br />
g++ main.cpp shape.o -o myexe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/860244</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860244</guid><dc:creator><![CDATA[ZuK]]></dc:creator><pubDate>Sun, 28 Aug 2005 18:18:08 GMT</pubDate></item><item><title><![CDATA[Reply to C und C++ mixen on Sun, 28 Aug 2005 18:58:05 GMT]]></title><description><![CDATA[<p>funzt! 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/860261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/860261</guid><dc:creator><![CDATA[Raptor]]></dc:creator><pubDate>Sun, 28 Aug 2005 18:58:05 GMT</pubDate></item></channel></rss>