<?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[Probleme mit dem C++ Präprozessor]]></title><description><![CDATA[<p>Hallo Programmierer,</p>
<p>ich möchte Quellcode mittelst #include includieren, der Quellcode ist aber mal in dem einem ordner und mal in dem anderen ordner</p>
<p>ich will folgendes Makro programmieren:</p>
<pre><code>#define SEARCH_PATH /home/user/ordner/bla

#define MAKRO(x) // was muss hier hin?

#include MAKRO(fileA.hpp)
#include MAKRO(fileB.hpp)
#include MAKRO(fileC.hpp)
</code></pre>
<pre><code>#include MAKRO(fileA.hpp)
</code></pre>
<p>soll zu</p>
<pre><code>#include &quot;/home/user/ordner/bla/fileA.hpp&quot;
</code></pre>
<p>expandiert werden.</p>
<p>Wie geht das?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/339011/probleme-mit-dem-c-präprozessor</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 13:09:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/339011.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 27 Jul 2016 14:29:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit dem C++ Präprozessor on Wed, 27 Jul 2016 14:29:18 GMT]]></title><description><![CDATA[<p>Hallo Programmierer,</p>
<p>ich möchte Quellcode mittelst #include includieren, der Quellcode ist aber mal in dem einem ordner und mal in dem anderen ordner</p>
<p>ich will folgendes Makro programmieren:</p>
<pre><code>#define SEARCH_PATH /home/user/ordner/bla

#define MAKRO(x) // was muss hier hin?

#include MAKRO(fileA.hpp)
#include MAKRO(fileB.hpp)
#include MAKRO(fileC.hpp)
</code></pre>
<pre><code>#include MAKRO(fileA.hpp)
</code></pre>
<p>soll zu</p>
<pre><code>#include &quot;/home/user/ordner/bla/fileA.hpp&quot;
</code></pre>
<p>expandiert werden.</p>
<p>Wie geht das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2503651</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2503651</guid><dc:creator><![CDATA[kryptomatrix]]></dc:creator><pubDate>Wed, 27 Jul 2016 14:29:18 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit dem C++ Präprozessor on Wed, 27 Jul 2016 14:37:57 GMT]]></title><description><![CDATA[<p>Dir ist schon klar, dass man dem Compiler den Suchpfad übergeben kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2503652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2503652</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 27 Jul 2016 14:37:57 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit dem C++ Präprozessor on Thu, 28 Jul 2016 12:16:57 GMT]]></title><description><![CDATA[<p>Ich weiß dass man dem Compiler nen such Pfad übergeben kann, leider benutze ich die Arduino IDE auf verschiedenen fremden Rechnern an denen ich nix rummachen kann. Compilier Befehl ändern ist also leider nicht möglich, trotzdem Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2503802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2503802</guid><dc:creator><![CDATA[kryptomatrix]]></dc:creator><pubDate>Thu, 28 Jul 2016 12:16:57 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit dem C++ Präprozessor on Thu, 28 Jul 2016 18:39:52 GMT]]></title><description><![CDATA[<p>Da gibt man gewöhnlich ein makefile mit, das die Kompilierung definiert...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2503840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2503840</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Thu, 28 Jul 2016 18:39:52 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit dem C++ Präprozessor on Fri, 29 Jul 2016 11:22:57 GMT]]></title><description><![CDATA[<p>Die Arduino IDE kann leider keine Makefiles einlesen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":-("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2503914</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2503914</guid><dc:creator><![CDATA[kryptomatrix]]></dc:creator><pubDate>Fri, 29 Jul 2016 11:22:57 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit dem C++ Präprozessor on Fri, 29 Jul 2016 12:26:23 GMT]]></title><description><![CDATA[<p>kryptomatrix schrieb:</p>
<blockquote>
<p>Ich weiß dass man dem Compiler nen such Pfad übergeben kann, leider benutze ich die Arduino IDE auf verschiedenen fremden Rechnern an denen ich nix rummachen kann. Compilier Befehl ändern ist also leider nicht möglich, trotzdem Danke.</p>
</blockquote>
<p>Du kannst nicht die Projekteinstellungen in der Arduino IDE verändern?<br />
Das ist doch sehr merkwürdig</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2503924</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2503924</guid><dc:creator><![CDATA[firefly]]></dc:creator><pubDate>Fri, 29 Jul 2016 12:26:23 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit dem C++ Präprozessor on Fri, 29 Jul 2016 12:37:02 GMT]]></title><description><![CDATA[<p>Nein Projetkeinstellungen ändern geht nicht:</p>
<p>Das Programm muss auf Laptops laufen die sich bei jedem hochfahren resetten.<br />
Außerdem ist die Bibliothek für Schüler gedacht die nicht in der lage sind was an den Projekteinstellungen zu schrauben (die wissen gar nicht was ein Kompiler ist)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2503926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2503926</guid><dc:creator><![CDATA[kryptomatrix]]></dc:creator><pubDate>Fri, 29 Jul 2016 12:37:02 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit dem C++ Präprozessor on Fri, 29 Jul 2016 14:07:01 GMT]]></title><description><![CDATA[<p>Such mal nach dem STRINGIZE Makro sowie den Makro-Operatoren # und ## <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
<p>In etwa so</p>
<pre><code class="language-cpp">// Ich habe der Einfachheit noch den Slash am Ende des Pfades hinzugefügt
#define SEARCH_PATH /home/user/ordner/bla/

#define STR(X) #X
#define STR2(X) STR(X)
#define CONCAT(X,Y) X##Y

#define MAKRO(x) STR2(SEARCH_PATH) STR(x)
</code></pre>
<p>(das CONCAT brauchst du nur, wenn du zwei Identifier zusammenfügen willst - habe ich nur der Vollständigkeit hier aufgeführt)</p>
<p>Hier ein Test damit: <a href="http://ideone.com/m5Gj1G" rel="nofollow">http://ideone.com/m5Gj1G</a></p>
<p>Für das Benutzen von Makros innerhalb einer Include-Direktive s. <a href="http://www.thecodingforums.com/threads/using-macro-inside-an-include-statement.678308/" rel="nofollow">Using macro inside an include statement</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2503941</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2503941</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Fri, 29 Jul 2016 14:07:01 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit dem C++ Präprozessor on Fri, 29 Jul 2016 14:14:16 GMT]]></title><description><![CDATA[<p>Hier wohl die für dich richtige Version:</p>
<pre><code class="language-cpp">#define SEARCH_PATH /home/user/ordner/bla/

#define STR(X) #X
#define STR2(X) STR(X)
#define CONCAT(X,Y) X##Y
#define EXPAND(x) x

#define MAKE_PATH(x) STR2(EXPAND(SEARCH_PATH)x)
#define MAKRO(x) MAKE_PATH(x)

#include MAKRO(fileA.hpp)
</code></pre>
<p>s.a. <a href="http://ideone.com/Zx0uUH" rel="nofollow">http://ideone.com/Zx0uUH</a> (mit erwarteter Fehlermeldung, aber richtigem Pfad <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2503947</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2503947</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Fri, 29 Jul 2016 14:14:16 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit dem C++ Präprozessor on Fri, 29 Jul 2016 14:26:24 GMT]]></title><description><![CDATA[<p>Danke, funktioniert</p>
<p>ich wusste schon was #x und x##y macht, irgendwie hats aber nie geklappt.</p>
<p>Ich wusste nicht das EXPAND(SEARCH_PATH)x zu /home/user/ordner/bla/fileA.hpp gepräprozessort wird, ich dachte ich bräuchte da nen ## und hab</p>
<pre><code>#define MAKE_PATH(x) STR2(CONCAT(EXPAND(SEARCH_PATH), x))
</code></pre>
<p>versucht das hat aber net getan:</p>
<blockquote>
<p>dslTest:9: error: pasting &quot;)&quot; and &quot;dsl_Servo_Unstable&quot; does not give a valid preprocessing token<br />
dslTest.ino:5:21: note: in definition of macro 'CONCAT'<br />
dslTest.ino:10:20: note: in expansion of macro 'MAKE_PATH'<br />
dslTest.ino:12:10: note: in expansion of macro 'DSL_LIB'<br />
pasting &quot;)&quot; and &quot;dsl_Servo_Unstable&quot; does not give a valid preprocessing token</p>
</blockquote>
<p>Großen Dank an dich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2503948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2503948</guid><dc:creator><![CDATA[kryptomatrix]]></dc:creator><pubDate>Fri, 29 Jul 2016 14:26:24 GMT</pubDate></item></channel></rss>