<?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[Problem mit dateiübergreifener globaler Variable]]></title><description><![CDATA[<p>High!</p>
<p>Es kann natürlich sein, dass mein C++-Lehrbuch (von 1997) längst weggetauter Schnee von vorgestern ist und mein Problem schlichtweg seine Ursache darin hat, dass es nach heutigem ANSI/ISO-Standard gar nicht mehr möglich ist, so zu arbeiten...</p>
<p>Also: ich ackere mich im Moment gerade durch Ulrich BREYMANN: C++, Eine Einführung, Hanser 1997, S. 127, Kapitel 4.3.3. Dateiübergreifende Gültigkeit und Sichtbarkeit.<br />
Dort werden als Beispiele diese zwei kleinen Programme aufgeführt:</p>
<p>// <a href="http://Datei1.cc" rel="nofollow">Datei1.cc</a><br />
int global;<br />
int main()<br />
{<br />
global=17;<br />
}</p>
<p>// <a href="http://Datei2.cc" rel="nofollow">Datei2.cc</a><br />
extern int global;<br />
int func1( )<br />
{<br />
global=123;<br />
}</p>
<p>Das Programm &quot;<a href="http://Datei1.cc" rel="nofollow">Datei1.cc</a>&quot; ließ sich mit g++ 3.6 problemlos übersetzen; &quot;<a href="http://Datei2.cc" rel="nofollow">Datei2.cc</a>&quot; war aber entgegen der Beschreibung im Buch keineswegs &quot;allein übersetzbar&quot;, sondern produzierte bei Kompilieren folgende Fehlermeldungen:</p>
<p>/tmp/ccjGrB8L.o: In function <code>func()': /tmp/ccjGrB8L.o(.text+0x5): undefined reference to</code>global'<br />
collect2: ld returned 1 exit status</p>
<p>Was lief da falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/119865/problem-mit-dateiübergreifener-globaler-variable</link><generator>RSS for Node</generator><lastBuildDate>Sat, 22 Aug 2026 03:22:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/119865.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 06 Sep 2005 12:29:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit dateiübergreifener globaler Variable on Tue, 06 Sep 2005 12:29:40 GMT]]></title><description><![CDATA[<p>High!</p>
<p>Es kann natürlich sein, dass mein C++-Lehrbuch (von 1997) längst weggetauter Schnee von vorgestern ist und mein Problem schlichtweg seine Ursache darin hat, dass es nach heutigem ANSI/ISO-Standard gar nicht mehr möglich ist, so zu arbeiten...</p>
<p>Also: ich ackere mich im Moment gerade durch Ulrich BREYMANN: C++, Eine Einführung, Hanser 1997, S. 127, Kapitel 4.3.3. Dateiübergreifende Gültigkeit und Sichtbarkeit.<br />
Dort werden als Beispiele diese zwei kleinen Programme aufgeführt:</p>
<p>// <a href="http://Datei1.cc" rel="nofollow">Datei1.cc</a><br />
int global;<br />
int main()<br />
{<br />
global=17;<br />
}</p>
<p>// <a href="http://Datei2.cc" rel="nofollow">Datei2.cc</a><br />
extern int global;<br />
int func1( )<br />
{<br />
global=123;<br />
}</p>
<p>Das Programm &quot;<a href="http://Datei1.cc" rel="nofollow">Datei1.cc</a>&quot; ließ sich mit g++ 3.6 problemlos übersetzen; &quot;<a href="http://Datei2.cc" rel="nofollow">Datei2.cc</a>&quot; war aber entgegen der Beschreibung im Buch keineswegs &quot;allein übersetzbar&quot;, sondern produzierte bei Kompilieren folgende Fehlermeldungen:</p>
<p>/tmp/ccjGrB8L.o: In function <code>func()': /tmp/ccjGrB8L.o(.text+0x5): undefined reference to</code>global'<br />
collect2: ld returned 1 exit status</p>
<p>Was lief da falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/866186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866186</guid><dc:creator><![CDATA[Yadgar]]></dc:creator><pubDate>Tue, 06 Sep 2005 12:29:40 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit dateiübergreifener globaler Variable on Tue, 06 Sep 2005 12:37:42 GMT]]></title><description><![CDATA[<p>*sich am Hinterkopf kratz*<br />
Öhm... sowas macht Mann/Frau in C++?</p>
<p>Denke es liegt daran, dass der Compiler schon ganz gerne wissen würde wo deine globale Variable definiert ist. Mit &quot;allgemein übersetzbar&quot; ist wohl eher gemeint, dass du deine erste Datei nicht übersetzen musst damit du die zweite Datei übersetzen kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/866195</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866195</guid><dc:creator><![CDATA[Mathias]]></dc:creator><pubDate>Tue, 06 Sep 2005 12:37:42 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit dateiübergreifener globaler Variable on Tue, 06 Sep 2005 12:49:02 GMT]]></title><description><![CDATA[<p>Also mal ganz grundsaetzlich: globale Variablen sind ein fast absolutes No-No. Sie verdecken den tatsaechlichen Datenfluss und erzeugen unnoetige Abhaenigkeiten. Wenn eine Funktion/Methode eine Variable benoetigt, dann sollte man sie auch ordentlich als Parameter uebergeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/866213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866213</guid><dc:creator><![CDATA[MBCS-CITP]]></dc:creator><pubDate>Tue, 06 Sep 2005 12:49:02 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit dateiübergreifener globaler Variable on Wed, 07 Sep 2005 06:11:33 GMT]]></title><description><![CDATA[<p>High!</p>
<p>MBCS-CITP schrieb:</p>
<blockquote>
<p>Also mal ganz grundsaetzlich: globale Variablen sind ein fast absolutes No-No. Sie verdecken den tatsaechlichen Datenfluss und erzeugen unnoetige Abhaenigkeiten. Wenn eine Funktion/Methode eine Variable benoetigt, dann sollte man sie auch ordentlich als Parameter uebergeben.</p>
</blockquote>
<p>In den 90ern, als mein Lehrbuch verfasst wurde, galt sowas aber anscheinend noch als akzeptabler Stil...</p>
<p>Wo stelle ich denn beim g++ die Umgebungsvariablen ein, damit der Compiler externe Variablen findet? Irgendwas mit /etc/gcc bzw. /etc/g++ ?</p>
<p>Bis bald im Khyberspace!</p>
<p>Yadgar</p>
]]></description><link>https://www.c-plusplus.net/forum/post/866713</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866713</guid><dc:creator><![CDATA[Yadgar]]></dc:creator><pubDate>Wed, 07 Sep 2005 06:11:33 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit dateiübergreifener globaler Variable on Wed, 07 Sep 2005 06:56:26 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Wo stelle ich denn beim g++ die Umgebungsvariablen ein, damit der Compiler externe Variablen findet? Irgendwas mit /etc/gcc bzw. /etc/g++ ?
</code></pre>
<p>Ich glaube da verwechselst du was.. Das hat überhaupt gar nix mit den Umgebungsvariablen zutun.</p>
<p>Genauso vergessen kannst du das mit dem Schnee von gestern. Das was im Ulrich BREYMANN sollte auch heute noch funktionieren (es sei denn es war schon damals ein Fehler).</p>
<p>Zu dem akzeptablen Stil: Sowas war in C++ nie aktzeptabel. Das sowas geht, hat damit zutun, dass es mit einem aktuellen C++-Compiler möglich sein soll alte C-Programme übersetzen zu können. Daher wird noch sehr viel Zeug im Standard mitgeschlept, die ein guter C++-Programmierer wenn es möglich ist nicht benutzt.<br />
Was nichts daran ändert das man wissen sollte, dass sowas geht und deshalb stehts auch in deinem schlauen Buch.</p>
<p>Bist du dir sicher, dass der Compiler diese Fehlermeldung bringt? Wenn bereits die *.o-Datei existiert hat der Compiler eigentlich schon seinen dienst ohne zu meckern getan.<br />
Mit diesen Dateien arbeitet der Linker und dieser braucht die beide *.o-Dateien um das Programm erzeugen zu können, da er die Verbindung zwischen den Dateien herstellt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/866727</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866727</guid><dc:creator><![CDATA[Mathias]]></dc:creator><pubDate>Wed, 07 Sep 2005 06:56:26 GMT</pubDate></item></channel></rss>