• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[Gelöst:] g++ Problem mit "Hello World"

vixt

Member
Hallo,
ich habe das Schemata "Grundlegende Enwticklungsumgebung" installiert und dachte, ich könnte nun munter drauf los programmieren.
Leider laufe ich schon bei dem einfachen "Hello World" in ein Problem. Für das Programm:
Code:
#include <iostream>
#include <ostream>
int main()
{
   std::cout << "Hallo Welt!" << std::endl;
}
führt der einfache Aufruf
Code:
g++ helloworld.cpp
zu einer Unmenge von Fehlermeldungen:
Code:
In file included from helloworld.cpp:1:
/usr/include/c++/4.3/iostream:44:28: error: bits/c++config.h: Datei oder Verzeichnis nicht gefunden
In file included from /usr/include/c++/4.3/cwchar:49,
                 from /usr/include/c++/4.3/bits/postypes.h:47,
                 from /usr/include/c++/4.3/iosfwd:47,
                 from /usr/include/c++/4.3/ios:44,
                 from /usr/include/c++/4.3/ostream:45,
                 from /usr/include/c++/4.3/iostream:45,
                 from helloworld.cpp:1:
/usr/include/c++/4.3/cstddef:48:25: error: stddef.h: Datei oder Verzeichnis nicht gefunden
In file included from /usr/include/features.h:354,
                 from /usr/include/stdio.h:28,
                 from /usr/include/c++/4.3/cstdio:50,
                 from /usr/include/c++/4.3/bits/char_traits.h:48,
                 from /usr/include/c++/4.3/ios:46,
                 from /usr/include/c++/4.3/ostream:45,
                 from /usr/include/c++/4.3/iostream:45,
                 from helloworld.cpp:1:
/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: Datei oder Verzeichnis nicht gefunden
In file included from /usr/include/c++/4.3/cstdio:50,
                 from /usr/include/c++/4.3/bits/char_traits.h:48,
                 from /usr/include/c++/4.3/ios:46,
                 from /usr/include/c++/4.3/ostream:45,
                 from /usr/include/c++/4.3/iostream:45,
                 from helloworld.cpp:1:
/usr/include/stdio.h:34:21: error: stddef.h: Datei oder Verzeichnis nicht gefunden
In file included from /usr/include/stdio.h:75,
                 from /usr/include/c++/4.3/cstdio:50,
                 from /usr/include/c++/4.3/bits/char_traits.h:48,
                 from /usr/include/c++/4.3/ios:46,
                 from /usr/include/c++/4.3/ostream:45,
                 from /usr/include/c++/4.3/iostream:45,
                 from helloworld.cpp:1:
/usr/include/libio.h:53:21: error: stdarg.h: Datei oder Verzeichnis nicht gefunden
In file included from /usr/include/c++/4.3/ios:47,
                 from /usr/include/c++/4.3/ostream:45,
                 from /usr/include/c++/4.3/iostream:45,
                 from helloworld.cpp:1:
/usr/include/c++/4.3/bits/localefwd.h:47:76: error: bits/c++locale.h: Datei oder Verzeichnis nicht gefunden
In file included from /usr/include/c++/4.3/bits/ios_base.h:46,
                 from /usr/include/c++/4.3/ios:48,
                 from /usr/include/c++/4.3/ostream:45,
                 from /usr/include/c++/4.3/iostream:45,
                 from helloworld.cpp:1:
/usr/include/c++/4.3/ext/atomicity.h:39:23: error: bits/gthr.h: Datei oder Verzeichnis nicht gefunden
/usr/include/c++/4.3/ext/atomicity.h:40:30: error: bits/atomic_word.h: Datei oder Verzeichnis nicht gefunden
In file included from /usr/include/c++/4.3/string:48,
                 from /usr/include/c++/4.3/bits/locale_classes.h:47,
                 from /usr/include/c++/4.3/bits/ios_base.h:48,
                 from /usr/include/c++/4.3/ios:48,
                 from /usr/include/c++/4.3/ostream:45,
                 from /usr/include/c++/4.3/iostream:45,
                 from helloworld.cpp:1:
/usr/include/c++/4.3/bits/allocator.h:53:31: error: bits/c++allocator.h: Datei oder Verzeichnis nicht gefunden
In file included from /usr/include/c++/4.3/bits/basic_ios.h:44,
                 from /usr/include/c++/4.3/ios:50,
                 from /usr/include/c++/4.3/ostream:45,
                 from /usr/include/c++/4.3/iostream:45,
                 from helloworld.cpp:1:
/usr/include/c++/4.3/bits/locale_facets.h:48:30: error: bits/ctype_base.h: Datei oder Verzeichnis nicht gefunden
/usr/include/c++/4.3/bits/locale_facets.h:1559:31: error: bits/ctype_inline.h: Datei oder Verzeichnis nicht gefunden
In file included from /usr/include/c++/4.3/iosfwd:46,
                 from /usr/include/c++/4.3/ios:44,
                 from /usr/include/c++/4.3/ostream:45,
                 from /usr/include/c++/4.3/iostream:45,
                 from helloworld.cpp:1:
/usr/include/c++/4.3/bits/stringfwd.h:46: error: expected constructor, destructor, or type conversion before ‘(’ token
/usr/include/c++/4.3/bits/stringfwd.h:55: error: expected type-specifier before ‘allocator’
/usr/include/c++/4.3/bits/stringfwd.h:55: error: expected ‘>’ before ‘allocator’
/usr/include/c++/4.3/bits/stringfwd.h:60: error: template argument 3 is invalid
/usr/include/c++/4.3/bits/stringfwd.h:60: error: invalid type in declaration before ‘;’ token
/usr/include/c++/4.3/bits/stringfwd.h:68: error: ‘_GLIBCXX_END_NAMESPACE’ does not name a type
In file included from /usr/include/c++/4.3/cwchar:49,
                 from /usr/include/c++/4.3/bits/postypes.h:47,
                 from /usr/include/c++/4.3/iosfwd:47,
                 from /usr/include/c++/4.3/ios:44,
                 from /usr/include/c++/4.3/ostream:45,
                 from /usr/include/c++/4.3/iostream:45,
                 from helloworld.cpp:1:
/usr/include/c++/4.3/cstddef:56: error: ‘::size_t’ has not been declared
In file included from /usr/include/c++/4.3/bits/postypes.h:47,
                 from /usr/include/c++/4.3/iosfwd:47,
                 from /usr/include/c++/4.3/ios:44,
                 from /usr/include/c++/4.3/ostream:45,
                 from /usr/include/c++/4.3/iostream:45,
                 from helloworld.cpp:1:
/usr/include/c++/4.3/cwchar:61: error: expected constructor, destructor, or type conversion before ‘extern’
In file included from /usr/include/c++/4.3/ios:45,
                 from /usr/include/c++/4.3/ostream:45,
                 from /usr/include/c++/4.3/iostream:45,
                 from helloworld.cpp:1:
/usr/include/c++/4.3/exception:40: error: expected declaration before end of line
Was mache ich falsch? Ich bin eigentlich immer davon ausgegangen, dass so einfache Programme ohne weitere Konfiguration zu schreiben sind.
[Edit:] Mein System: openSUSE 11.0 x86_64
 

oxe1976

Member
Hm, vielleicht der g++ nicht richtig installiert?

Code:
#include <ostream>
kann erstmal raus.

Dann vielleicht mal versuchen die 64 bit version zu bauen:
Code:
g++ -m64 helloworld.cpp
 
OP
V

vixt

Member
oxe1976 schrieb:
Hm, vielleicht der g++ nicht richtig installiert?
Das Gefühl habe ich auch. Habe es jetzt mal auf zwei weiteren Rechnern mit OS11.0 auf x86_64 probiert.
Ergebnis: Auf einem Rechner kein Problem, auf dem anderen auch kein kompilieren möglich.
Nur: was habe ich jetzt anderst gemacht? Liegt es evtl. an der Installationsreihenfolge von Paketen?
oxe1976 schrieb:
Code:
#include <ostream>
kann erstmal raus.

Dann vielleicht mal versuchen die 64 bit version zu bauen:
Code:
g++ -m64 helloworld.cpp
Hat leider nicht weiter geholfen.
Ich versuche mal alle installierten Pakete zu Entwicklungsschemata erneut zu installieren.
 

oxe1976

Member
An der Reihenfolge kann es eigentlich nicht liegen.

Ich habe die Entwicklungssache damals mit Yast2 installiert.

Unter "Filter" -> "Schemata" wählen. Dann gibt es zwei "Schemata" die du installieren kannst:
- Grundlegende Entwicklungsumgebung
- C/C++ Entwicklung

Falls du die Liste der installieren RPMs vergleichen willst:

Auf beiden Rechnern
Code:
rpm -qa  | sort > rpms_rechner1.txt
rpm -qa  | sort > rpms_rechner2.txt
...

ausführen und dann die beiden files mit diff (oder grafisch mit kdiff3 oder tkdiff) vergleichen.
Code:
tkdiff  rpms_rechner1.txt  rpms_rechner2.txt
 
OP
V

vixt

Member
Alles Vergleichen oder einfaches, nochmaliges Installieren der Pakete hat nichts gebracht.
Letztlich habe ich das Problem durch eine (fast) komplette Deinstallation der Pakete in den Entwicklungsschemata und der anschließenden Neuinstallation der Schemata gelöst.
Die Deinstallation war nur "fast" komplett weil einige Pakete besser nicht deinstalliert werden, weil sie von anderen wichtigen Systemkomponenten benötigt werden, z.B. das Paket binutils ist so eines.
Es ist mir etwas rätselhaft, wodurch mein Problem entstanden ist. Ich vermute mal, dass ich vorher ein Paket aus den Entwicklungsschemata einzeln installiert habe, was dann bei der späteren Schemata-Installation wohl irgendwas blockiert hat.
 
Oben