Welche Ubuntu-Version hast du eigentlich?
Ansonsten, versuch mal Clang zu installieren:
Code: Alles auswählen
sudo apt-get install clang
Code: Alles auswählen
sudo apt-get install clang
Version 12.04 - die offiziellen Quellen gehen nur bis gcc 4.6.xfat-lobyte hat geschrieben:Welche Ubuntu-Version hast du eigentlich?
Habe beim Googeln folgendes gefunden:fat-lobyte hat geschrieben:Momentchen mal, das ist aber kein Compilerfehler. Irgendwas ist da mit deiner Installation verkehrt. Aus welchem PPA hast du den Compiler denn? Gibt es vielleicht einen anderen?
Code: Alles auswählen
sudo add-apt-repository ppa:Ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.7 g++-4.7
Ich bin echt so selten-blöd und hab das vergessen Und da steht sogar noch dabei g++-4.7 xDKerli hat geschrieben:Hast du denn auch g++ installiert (für C++) und nicht nur den gcc (für C).
Code: Alles auswählen
g++-4.7 -o test test.cpp -std=c++11
Der erster Versuch ohne explizite Verwendung von C++11 war schon aufschlussreicher als mit gcc:fat-lobyte hat geschrieben: Ansonsten, versuch mal Clang zu installieren:Code: Alles auswählen
sudo apt-get install clang
Code: Alles auswählen
clang -o test test.cpp
test.cpp:18:7: error: delegating constructors are permitted only in C++11
: Test(0, 0) {
^~~~
1 error generated.
Code: Alles auswählen
clang -o test test.cpp -std=c++11
/tmp/test-0UHsxg.o: In function `__cxx_global_var_init':
test.cpp:(.text+0x10): undefined reference to `std::ios_base::Init::Init()'
test.cpp:(.text+0x16): undefined reference to `std::ios_base::Init::~Init()'
/tmp/test-0UHsxg.o: In function `Test::print()':
test.cpp:(.text+0xbb): undefined reference to `std::cout'
test.cpp:(.text+0xd6): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
test.cpp:(.text+0xe7): undefined reference to `std::ostream::operator<<(int)'
test.cpp:(.text+0xf9): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
test.cpp:(.text+0x10b): undefined reference to `std::ostream::operator<<(int)'
test.cpp:(.text+0x111): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
test.cpp:(.text+0x11d): undefined reference to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Code: Alles auswählen
clang++ -o test test.cpp -std=c++11
Afaik sind g++ Executables schneller, dafür ist clang moderner, hat bessere Fehlermeldungen und weiter mit C++11.Glocke hat geschrieben:Bezüglich g++ oder clang++ ... wo liegen die Vor- und Nachteile?
Demnach ist clang wohl eher was für "Anfänger"(Oder Leute die bessere Fehlermeldungen mögen) als der immer heilig angepriesene gcc/++^^Xin hat geschrieben:Afaik sind g++ Executables schneller, dafür ist clang moderner, hat bessere Fehlermeldungen und weiter mit C++11.
Ich glaube nicht, dass GCC viel "heilig angepriesen" wurde, es gab nur lange keine Alternative. Aber du hast recht, wenn ich jetzt zu Programmieren beginnen würde, würde ich es mit Clang machen.darksider3 hat geschrieben:Demnach ist clang wohl eher was für "Anfänger"(Oder Leute die bessere Fehlermeldungen mögen) als der immer heilig angepriesene gcc/++^^
Gute Fehlermeldungen sind kein Spaß für Anfänger, sondern eine sehr große Hilfe bei der Entwicklung. Zur Entwicklung möchte ich auf clang wechseln. Wenn es darum geht, schnelle Release-Executables zu erzeugen, scheint GCC noch vorne zu liegen.darksider3 hat geschrieben:Demnach ist clang wohl eher was für "Anfänger"(Oder Leute die bessere Fehlermeldungen mögen) als der immer heilig angepriesene gcc/++^^Xin hat geschrieben:Afaik sind g++ Executables schneller, dafür ist clang moderner, hat bessere Fehlermeldungen und weiter mit C++11.