<?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[Compiler per #ifdef bestimmen]]></title><description><![CDATA[<p>Hallo,<br />
man kann ja ein Programm für verschiedene Compiler schreiben, indem man alle Codezeilen, die sich unterscheiden müssen, zwischen</p>
<pre><code class="language-cpp">#ifdef Compilername
</code></pre>
<p>und</p>
<pre><code class="language-cpp">#endif
</code></pre>
<p>schreibt. Nun meine Frage: Wo sehe ich, wie diese Compiler im Quelltext bezeichnet werden müssen? Ein Beispiel:</p>
<pre><code class="language-cpp">void warten (int zeit)
{
#ifdef MicrosoftVisualCPP
    cout.flush ();
    Sleep (zeit);
#endif

#ifdef BorlandTurboCPP
    delay (zeit);
#endif
}
</code></pre>
<p>Woher weiß ich, was an die Stelle von MicrosoftVisualCPP bzw. BorlandTurboCPP hingehört? Was mich auch noch interessiert:<br />
Gibt es eine Art else-if-defined, so daß ich nicht jede Version mit einem eigenen #ifdef einleiten muß?<br />
Und was muß ich schreiben, damit beim Kompilieren bereits ein Fehler ausgegeben wird? Ich will es also folgendermaßen machen:</p>
<pre><code class="language-cpp">#ifdef MVCPP
    //...
#else-ifdef /*&lt;-- Wie muß man das schreiben?*/ TCPP
    //...
#else
    GibBeimKompilierenEinenFehlerAus
#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/141919/compiler-per-ifdef-bestimmen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 31 Aug 2026 15:12:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/141919.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 26 Mar 2006 13:26:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Compiler per #ifdef bestimmen on Sun, 26 Mar 2006 13:26:35 GMT]]></title><description><![CDATA[<p>Hallo,<br />
man kann ja ein Programm für verschiedene Compiler schreiben, indem man alle Codezeilen, die sich unterscheiden müssen, zwischen</p>
<pre><code class="language-cpp">#ifdef Compilername
</code></pre>
<p>und</p>
<pre><code class="language-cpp">#endif
</code></pre>
<p>schreibt. Nun meine Frage: Wo sehe ich, wie diese Compiler im Quelltext bezeichnet werden müssen? Ein Beispiel:</p>
<pre><code class="language-cpp">void warten (int zeit)
{
#ifdef MicrosoftVisualCPP
    cout.flush ();
    Sleep (zeit);
#endif

#ifdef BorlandTurboCPP
    delay (zeit);
#endif
}
</code></pre>
<p>Woher weiß ich, was an die Stelle von MicrosoftVisualCPP bzw. BorlandTurboCPP hingehört? Was mich auch noch interessiert:<br />
Gibt es eine Art else-if-defined, so daß ich nicht jede Version mit einem eigenen #ifdef einleiten muß?<br />
Und was muß ich schreiben, damit beim Kompilieren bereits ein Fehler ausgegeben wird? Ich will es also folgendermaßen machen:</p>
<pre><code class="language-cpp">#ifdef MVCPP
    //...
#else-ifdef /*&lt;-- Wie muß man das schreiben?*/ TCPP
    //...
#else
    GibBeimKompilierenEinenFehlerAus
#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1024160</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1024160</guid><dc:creator><![CDATA[NES-Spieler]]></dc:creator><pubDate>Sun, 26 Mar 2006 13:26:35 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler per #ifdef bestimmen on Sun, 26 Mar 2006 13:34:31 GMT]]></title><description><![CDATA[<p>ich mach's so:</p>
<pre><code class="language-cpp">//datei arith.hpp
#ifdef __GNUC__
#include &quot;compiler/gcc/arith.hpp&quot;
#endif

#ifdef _MSC_VER
#include &quot;compiler/msvc/arith.hpp&quot;
#endif
</code></pre>
<p>in den jeweiligen compilerspezifischen dateien werden dann funktionen definiert. benutzt jemand einen unbekannten compiler, sind die funktionen nicht da. solange er sie nicht aufrufen mag, gibt's keinen fehler.<br />
jetzt wirf mal goole an und siche nach __GNUC__ und _MSC_VER und du wirst schon auf fremde ifdef-orgien stoßen, die mehr compiler kennen.</p>
<pre><code class="language-cpp">Gibt es eine Art else-if-defined, so daß ich nicht jede Version mit einem eigenen #ifdef einleiten muß?
</code></pre>
<p>#elif defined</p>
<p>und</p>
<p>#error GibBeimKompilierenEinenFehlerAus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1024165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1024165</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 26 Mar 2006 13:34:31 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler per #ifdef bestimmen on Sun, 26 Mar 2006 13:35:33 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>eine Liste mit Compiler-Direktiven findest du hier: <a href="http://predef.sourceforge.net/" rel="nofollow">http://predef.sourceforge.net/</a></p>
<p>MfG</p>
<p>GPC</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1024166</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1024166</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Sun, 26 Mar 2006 13:35:33 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler per #ifdef bestimmen on Sun, 26 Mar 2006 13:57:23 GMT]]></title><description><![CDATA[<p>Du solltest Dir vielleicht mal ansehen wie <a href="http://www.boost.org" rel="nofollow">boost</a> das macht. Wenn Du die boost libraries geladen hast, findest Du die Selektion des Compilers in der Datei &quot;boost/config/select_compiler_config.hpp&quot;.</p>
<p>Zu diesem Thema der compiler-abhängigen Programmierung bietet boost auch ein eigenes <a href="http://www.boost.org/libs/config/config.htm" rel="nofollow">Tool</a> an.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1024179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1024179</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Sun, 26 Mar 2006 13:57:23 GMT</pubDate></item><item><title><![CDATA[Reply to Compiler per #ifdef bestimmen on Sun, 26 Mar 2006 20:57:46 GMT]]></title><description><![CDATA[<p>Vielen Dank für die Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1024460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1024460</guid><dc:creator><![CDATA[NES-Spieler]]></dc:creator><pubDate>Sun, 26 Mar 2006 20:57:46 GMT</pubDate></item></channel></rss>