<?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[Funktion wird mal gefunden, mal nicht [gelöst]]]></title><description><![CDATA[<p>Hallo,<br />
ich bin gerade ziemlich am verzweifeln, da gerade allereinfachste Grundlagen bei mir nicht funktionieren. Leider ist es mir nicht möglich ein Minimalbeispiel mit dem Fehler zu posten, denn gerade da liegt das Problem.</p>
<p>Der Code ist so aufgebaut (CopyPaste - vielleicht habe ich ja doch einen Schreibfehler, den ich gerade nicht sehe):<br />
sim.h:</p>
<pre><code class="language-cpp">class sim {
public:
   void read_system_parameters(const olmc::ParamSet &amp;params);

[...]

   void read_common_params(const olmc::ParamSet&amp;);
};
</code></pre>
<p><a href="http://system.cc" rel="nofollow">system.cc</a>:</p>
<pre><code class="language-cpp">#include &quot;sim.h&quot;

[...]

using namespace olmc;

void sim::read_system_parameters(const olmc::ParamSet &amp;params) {

  read_common_params(params);

 [...]

}

void sim::read_common_params(const olmc::ParamSet &amp; params){

[...]

}
</code></pre>
<p>So, jetzt bekomme ich beim Compilieren von <a href="http://system.cc" rel="nofollow">system.cc</a> sowas:</p>
<pre><code>Ausgabe von 'g++ system.cc' (Zeilennummern an obigen Code angepasst):
system.cc: In member function 'void sim::read_system_parameters(const olmc::ParamSet&amp;)':
system.cc:9: error: 'read_common_params' was not declared in this scope
system.cc: At global scope:
system.cc:15: error: no 'void sim::read_common_params(const olmc::ParamSet&amp;)' member function declared in class 'sim'
</code></pre>
<p>Das ist ja schonmal komisch genug, denn obiges Minimalbeispiel compiliert, bis auf die fehlende Deklaration von ParamSet. Nun gut, kann ja sein, dass ich in dem gekürzten Teil irgendwo was falsch mache. Nun habe ich das ganze aber mal durch den Präprozessor gejagt und in eine Datei geschrieben, um den Fehler genauer lokalisieren zu können:</p>
<pre><code>g++ system.cc -E &gt; test.cc
</code></pre>
<p>Und jetzt kommt's: <a href="http://test.cc" rel="nofollow">test.cc</a> lässt sich fehlerfrei compilieren!</p>
<p>Wie kann das denn sein? Der Präprozessor wird doch immer zuerst angewendet und sonst mache ich nichts anders! Ich bin gerade völlig verwirrt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/248489/funktion-wird-mal-gefunden-mal-nicht-gelöst</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 00:36:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/248489.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 25 Aug 2009 15:33:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktion wird mal gefunden, mal nicht [gelöst] on Tue, 25 Aug 2009 16:13:06 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich bin gerade ziemlich am verzweifeln, da gerade allereinfachste Grundlagen bei mir nicht funktionieren. Leider ist es mir nicht möglich ein Minimalbeispiel mit dem Fehler zu posten, denn gerade da liegt das Problem.</p>
<p>Der Code ist so aufgebaut (CopyPaste - vielleicht habe ich ja doch einen Schreibfehler, den ich gerade nicht sehe):<br />
sim.h:</p>
<pre><code class="language-cpp">class sim {
public:
   void read_system_parameters(const olmc::ParamSet &amp;params);

[...]

   void read_common_params(const olmc::ParamSet&amp;);
};
</code></pre>
<p><a href="http://system.cc" rel="nofollow">system.cc</a>:</p>
<pre><code class="language-cpp">#include &quot;sim.h&quot;

[...]

using namespace olmc;

void sim::read_system_parameters(const olmc::ParamSet &amp;params) {

  read_common_params(params);

 [...]

}

void sim::read_common_params(const olmc::ParamSet &amp; params){

[...]

}
</code></pre>
<p>So, jetzt bekomme ich beim Compilieren von <a href="http://system.cc" rel="nofollow">system.cc</a> sowas:</p>
<pre><code>Ausgabe von 'g++ system.cc' (Zeilennummern an obigen Code angepasst):
system.cc: In member function 'void sim::read_system_parameters(const olmc::ParamSet&amp;)':
system.cc:9: error: 'read_common_params' was not declared in this scope
system.cc: At global scope:
system.cc:15: error: no 'void sim::read_common_params(const olmc::ParamSet&amp;)' member function declared in class 'sim'
</code></pre>
<p>Das ist ja schonmal komisch genug, denn obiges Minimalbeispiel compiliert, bis auf die fehlende Deklaration von ParamSet. Nun gut, kann ja sein, dass ich in dem gekürzten Teil irgendwo was falsch mache. Nun habe ich das ganze aber mal durch den Präprozessor gejagt und in eine Datei geschrieben, um den Fehler genauer lokalisieren zu können:</p>
<pre><code>g++ system.cc -E &gt; test.cc
</code></pre>
<p>Und jetzt kommt's: <a href="http://test.cc" rel="nofollow">test.cc</a> lässt sich fehlerfrei compilieren!</p>
<p>Wie kann das denn sein? Der Präprozessor wird doch immer zuerst angewendet und sonst mache ich nichts anders! Ich bin gerade völlig verwirrt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1766526</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1766526</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 25 Aug 2009 16:13:06 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion wird mal gefunden, mal nicht [gelöst] on Tue, 25 Aug 2009 15:49:48 GMT]]></title><description><![CDATA[<p>Die using Direktive fügt einen namespace nichts hinzu, sondern macht nur bekannt. Schliess das ganze in den namespace ein.</p>
<pre><code class="language-cpp">namespace olmc
{
//definitionen
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1766531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1766531</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 25 Aug 2009 15:49:48 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion wird mal gefunden, mal nicht [gelöst] on Tue, 25 Aug 2009 16:00:43 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Die using Direktive fügt einen namespace nichts hinzu, sondern macht nur bekannt. Schliess das ganze in den namespace ein.</p>
<pre><code class="language-cpp">namespace olmc
{
//definitionen
}
</code></pre>
</blockquote>
<p>Nein, das ist es nicht. Es soll alles im globalen Namensbereich liegen, ich benutze nur ein paar Funktionen aus olmc. Ich habe das using namespace auch mal rausgenommen und es überall explizit hingeschrieben, das ändert nichts.</p>
<p>Das komische ist auch, dass andere Übersetzungseinheiten, die read_common_params verwenden tadellos funktionieren, nur diese eine nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1766532</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1766532</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 25 Aug 2009 16:00:43 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion wird mal gefunden, mal nicht [gelöst] on Tue, 25 Aug 2009 16:04:49 GMT]]></title><description><![CDATA[<p>Also in Visual Studio lässt es sich problemlos kompilieren. Ich denke mal das Problem liegt an einer andere Stelle, wäre es vielleicht möglich etwas mehr Code zu Gesicht zu bekommen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1766534</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1766534</guid><dc:creator><![CDATA[-insane- 0]]></dc:creator><pubDate>Tue, 25 Aug 2009 16:04:49 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion wird mal gefunden, mal nicht [gelöst] on Tue, 25 Aug 2009 16:12:01 GMT]]></title><description><![CDATA[<p>Ah, sorry. Ich habe irgendwie gesehen, dass da die Klasse in einem namespace ist. <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>Ich vermute der Fehler lieght wo anderst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1766539</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1766539</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 25 Aug 2009 16:12:01 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion wird mal gefunden, mal nicht [gelöst] on Tue, 25 Aug 2009 16:16:18 GMT]]></title><description><![CDATA[<p>Ich hab's! Ich bin ja so blind <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /> !</p>
<p>In meinem Verzeichnis war ein vorkompilierter Header von sim.h den ich wohl früher mal versehentlich erstellt habe. Den hat der Compiler dann anscheinend immer genommen - der war aber nicht mehr aktuell.</p>
<p>Jetzt frage ich mich nur noch, warum das die anderen Übersetzungeinheiten (die auch read_common_parameters verwenden) nicht gestört hat, sondern nur bei diesem Fall.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1766540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1766540</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 25 Aug 2009 16:16:18 GMT</pubDate></item></channel></rss>