Frage

Dieser sehr einfache Code gibt mir jede Menge Fehler:

#include <iostream>
#include <string>

int main() {
    std::string test = " ";
    std::cout << test;
}

Ich habe versucht, es auf Linux zu kompilieren, indem Sie gcc -o Simple simpletest.cpp auf der Konsole. Ich kann nicht sehen, warum es nicht funktioniert. Was ist passiert?

War es hilfreich?

Lösung

Versuchen Sie es mit 'g ++' anstelle von 'gcc'.

Andere Tipps

, um hinzuzufügen, was andere gesagt haben: g++ der Compiler GNU C ++ ist. gcc ist die GNU-Compiler-Sammlung ( nicht die GNU C-Compiler, wie viele Menschen davon ausgehen). gcc dient als Frontend für g++ wenn C ++ Quellen kompilieren. gcc kann kompilieren C, C ++, Objective-C, Fortran, Ada, Montage und andere.

Der Grund, warum es mit gcc zu kompilieren fehlschlägt versuchen, ist, dass Sie in der C ++ Standardbibliothek verknüpfen müssen. Standardmäßig führt g++ dies, aber gcc nicht. So verknüpfen Sie in der Standard-Bibliothek mit gcc C ++, verwenden Sie wie folgt vor:

gcc -o simpletest simpletest.cpp -lstdc++

Versuchen:

g++ -o simpletest simpletest.cpp

Versuchen Sie, mit g++ -o simpletest simpletest.cpp. gcc ist die C-Compiler, während g ++ die C ++ Compiler, der auch in der erforderlichen C ++ Bibliotheken verknüpft.

Darüber hinaus werden Sie eine return 0; am Ende Ihrer main() Funktion hinzufügen.

, wenn Ihr Compiler wählerisch ist, kann Sie hinzufügen möchten, dass alle wichtigen return 0; am Ende dort

Sie erklärt Ihre main() als eine int Rückkehr aber Sie haben keine return-Anweisung. In return 0; und sehen, ob das hilft. Wenn das nicht Ihr Problem lösen, versuchen Sie Ihren Beitrag Bearbeitung einige repräsentative Linien aus diesen Fehlern schließen Ihre bekommen und vielleicht können wir Ihnen helfen, besser.

g ++ war die richtige Antwort für mich auch, ich habe es auf, danke.

Aber mein Code, ein kleines Liedchen, die ich seit dem 13. Februar verwendet habe, 1998 (erster Kommentar), effektiven Bruttolohn und die Einbehaltung für stillen unsere Kinder Kindermädchen zu berechnen, war viel zu einfach, auch für g ++. In Bezug auf das obige Beispiel, meine Stroustrup-Sekunden-edition-konform Dinosaurier ging:

// too simple!

#include <iostream.h>
#include <stdlib.h>

main() {
    cout << "Hello World!" << endl;
}

Dies wird Ihnen ein komplettes Terminal-Fenster von Fehlermeldungen. Alles, außer den geschweiften Klammern ist ein Fehler! Und seine fehlt eine Rückleitung. Die Zeit war, würde dies kompilieren und korrekt in kommerziellen C ++ Entwicklungsumgebungen laufen ...

Es treten Newschool, ich bin jetzt mit:     // nur einfach genug

#include <iostream>
#include <stdlib.h>

int main(int argc, char* argv[] ) {
    std::cout << "Hello World!" << std::endl;
//  TODO - this ought to return success, 0
}

Die ursprünglichen Fragesteller hatten die std :: cout und verwenden String aus

 <string>...  

"einfach" ist ein relativer Begriff ...

Bill

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top