Visual Studio Code - returned 1 exit status?
Hallo,
ich habe folgendes Problem:
Ich möchte modularen Code schreiben und demnach Funktionen auslagern. Zum Testen habe ich ein Projekt, bestehend aus drei files, erstellt.
main.cpp, header.cpp und header.h.
Anfangs hatte ich die Funktionsprototypen und Definition aus der main.cpp in die header.h ausgelagert und die header.h mit #include "header.h" eingebunden.
Alles soweit gut!
Doch wenn ich nun die Funktionsdefinition aus der header.h in eine header.cpp auslagere habe ich wohl offensichtlich ein Problem, welches ich nicht beheben kann. Die Error message ist error: Id returned 1 exit status.
Wie kann ich dies fixen?
Bild im Anhang
3 Antworten
Der Code ist in Ordnung, und der Compiler meckert auch nicht. Es ist der Linker: Ihm fehlt die übersetzte Funktion min(int, int).
Sag dem Visual Studio, dass die Datei header.cpp zum Projekt gehört, also auch übersetzt werden soll.
Du hast irgendwo im Studio ein Projektfenster, in dem alle Dateien, die dazu gehören, aufgelistet sind. Dort steht momentan nur main.cpp, und vielleicht header.h. Die Datei header.cpp muss auch dazu. Vermutlich rechte Maustaste, Datei(en) zum Projekt hinzufügen, ...
Hmm, also die Files sind alle in einem Verzeichnis und dementsprechend auch alle in dem Projektfolder offen in VS
Nicht verwechseln: Die Dateiansicht zeigt alle Dateien im Verzeichnis. Die Projektansicht zeigt den Bauplan, und da muss header.cpp auch rein. Gibt es da vielleicht zwei Reiter?
Also ich habe mich dazu entschlossen alles nochmal zu deinstallieren vllt mal eine IDE wie VS 2022 draufzuspielen. Mal sehen ob es klappt
@ralphdieter Tatsächlich läuft es unter VS 2022 (wie erwartet) ohne Probleme. Jedoch ist VS 22 eine komplette IDE und kein Editor :/
danke dennoch für all die Mühe
Du musst in der .cpp auch immer die entsprechende Header-Datei einbinden.
Dies hat leider nicht geklappt, darüber hinaus wird doch die Header.cpp dadurch mit includiert, dass ich die Header.h, wo auch der Prototyp der Funktion deklariert ist, in der main drin habe oder etwa nicht ?
Ich bin mir nicht sicher aber ig es muss so sein:
Main.cpp:
#include "Header.h"
#include <iostream>
using namespace std;
int main()
{
cout<<max(5,6);
return 0;
}
header.cpp:
#include <math>
int max(int Zahl1,Zahl2)
{//irgentwas machen
return 0;
}
Header.h:
extern int max(int Zahl1,Zahl2);
Hallo Ralph, wie genau mache ich das? Die cpp Datei inkludiert man ja normalerweise nicht in der Main.
lg