Hallo Leute. Ich wollte meine Programmierfähigkeiten wieder auffrischen
(Jahre lang nicht gemeldet). Damals hab ich in der Uni noch mit Visual
Studio programmiert. Das war c++11... Nun hab ich mich für Eclipse mit
GCC zum proggen entschieden... Ich hab allerdings Probleme mit dem
Debuggen. Das Launching funktioniert bei dem alten Projekt nicht. Hallo
World läuft wunderbar. Also der Compiler sitzt drin!
Wenn ich starten will dann passiert nichts. Also Ein Configuration ->
c/c++ Application -> ja und dann kann ich bei 'Project' schon nichts
"Briesen" denn das ist komplett leer!
Vielen Dank!
Du kannst ein neues Projekt aufmachen und die Dateien per Drag&Drop ins
leere Projekt einziehen.
Auf der anderen Seite gibts VisualStudio als Community Version
kostenlos, gibt also keinen Grund zu wechseln.
nicht"Gast" schrieb:> Du kannst ein neues Projekt aufmachen und die Dateien per> Drag&Drop ins> leere Projekt einziehen.>> Auf der anderen Seite gibts VisualStudio als Community Version> kostenlos, gibt also keinen Grund zu wechseln.
Ja, richtig. Ich möchte allerdings nicht unbedingt Microsoftabhängig
sein. Noch benutze ich zwar Windows, gedenke aber auf Linux umzusteigen.
Dann nimm gcc/Eclipse für neue Projekte, und debugge dein altes Projekt
in Visual Studio.
Wenn das erweitert werden soll, ist jetzt der Zeitpunkt gekommen, das
alte Projekt auf die gcc-toolchain umzuschreiben. Nutzt das allerdings
Micorsoft-spzifischen Kleinkram wie MFC o.ä.,solltes du das mit Eclipse
nochmal überdenken.
Oliver
Error in final launch sequence:
Failed to execute MI command:
-file-exec-and-symbols "D:/Studium/Informatik
I/Exception-Handling/Exception-Handling/Exc-Main.cpp"
Error message from debugger back end:
"D:/Studium/Informatik
I/Exception-Handling/Exception-Handling/Exc-Main.cpp": not in executable
format: file format not recognized
Hallo nochmal. Ich bekomme jetzt diesen Fehlercode...
Weiß jemand Rat?
Oliver S. schrieb:> Dann nimm gcc/Eclipse für neue Projekte, und debugge dein altes> Projekt> in Visual Studio.>> Wenn das erweitert werden soll, ist jetzt der Zeitpunkt gekommen, das> alte Projekt auf die gcc-toolchain umzuschreiben. Nutzt das allerdings> Micorsoft-spzifischen Kleinkram wie MFC o.ä.,solltes du das mit Eclipse> nochmal überdenken.>> Oliver
Nein. Es ist eine einfache Konsolenanwendung.
Dingens schrieb:> Error message from debugger back end:> "D:/Studium/Informatik> I/Exception-Handling/Exception-Handling/Exc-Main.cpp": not in executable> format: file format not recognized
mit einem Quelltext kann der Debugger nix anfangen, in der Launch Config
muss schon das executable eingetragen werden.
Eclipse erstellt die launch configuration doch automatisch.
Im Projektexplorer den debug-Ordner öffnen, auf das exe da drin
rechtsklicken, und "debug as ..." auswählen.
Funktioniert das nicht, gibt es ein Problem mit der
toolchain-Installation.
Oliver
Oliver S. schrieb:> Eclipse erstellt die launch configuration doch automatisch.>> Im Projektexplorer den debug-Ordner öffnen, auf das exe da drin> rechtsklicken, und "debug as ..." auswählen.>> Funktioniert das nicht, gibt es ein Problem mit der> toolchain-Installation.>> Oliver
Neu erstellte Beispielprogramme wie "Hello World" funktionieren super.
Wenn ich das Alte Projekt importiere wie hier erklärt:
https://rsarte.hcldoc.com/help/index.jsp?topic=%2Forg.eclipse.cdt.doc.user%2Fgetting_started%2Fcdt_w_debug.htm
Dann wird bei mir (im Gegensatz zur Anleitung) allerdings keine .exe
oder makefile erstellt. Keine Ahnung...
Das Projekt hab ich über
Oliver S. schrieb:> Was genau verstehst du unter „Projekt importieren“ ?>> Beschriebe mal, wie du das gemacht hast.>> Oliver
Ich hab's jetzt so gemacht, dass ich ein hallo world Project gestartet
habe und die .cpp Datei durch meine cpp + headder ersetzt habe.
Das funktioniert. Nur unterstützt Eclipse GCC leider nicht die
Funktionen strlen und strcpy. (Ja string und cstring hab ich inkludiert.
Hat nichts genützt)
Außerdem funktioniert sprintf_s nicht... Aber ich kann jetzt debuggen.
Um oben genanntes zu lösen hatte ich noch keine Zeit.
Leider bin ich nicht Zuhause und kann keinen code Posten.
Dingens schrieb:> Nur unterstützt Eclipse GCC leider nicht die Funktionen strlen und strcpy.> (Ja string und cstring hab ich inkludiert. Hat nichts genützt)
Selbstverständlich verfügt der GCC, oder besser gesagt: die
C-Standardbibliothek über diese Funktionen.
Was ist denn die Fehlermeldung?
Dingens schrieb:> Ja, richtig. Ich möchte allerdings nicht unbedingt Microsoftabhängig> sein. Noch benutze ich zwar Windows, gedenke aber auf Linux umzusteigen.
Nur um das klarzustellen. Das Argument Microsoftabhängigkeit stimmt.
Der Punkt VS Studio Code läuft nicht unter Linux dagegen nicht.
https://code.visualstudio.com/docs/setup/linux
Mark B. schrieb:> Dingens schrieb:>> Nur unterstützt Eclipse GCC leider nicht die Funktionen strlen und strcpy.>> (Ja string und cstring hab ich inkludiert. Hat nichts genützt)>> Selbstverständlich verfügt der GCC, oder besser gesagt: die> C-Standardbibliothek über diese Funktionen.>> Was ist denn die Fehlermeldung?
Siehe Bild.
Dingens schrieb:> Mark B. schrieb:>> Dingens schrieb:>>> Nur unterstützt Eclipse GCC leider nicht die Funktionen strlen und strcpy.>>> (Ja string und cstring hab ich inkludiert. Hat nichts genützt)>>>> Selbstverständlich verfügt der GCC, oder besser gesagt: die>> C-Standardbibliothek über diese Funktionen.>>>> Was ist denn die Fehlermeldung?>> Siehe Bild.
Hast du die Fehlermeldung gelesen?
mh schrieb:> Dingens schrieb:>> Mark B. schrieb:>>> Dingens schrieb:>>>> Nur unterstützt Eclipse GCC leider nicht die Funktionen strlen und strcpy.>>>> (Ja string und cstring hab ich inkludiert. Hat nichts genützt)>>>>>> Selbstverständlich verfügt der GCC, oder besser gesagt: die>>> C-Standardbibliothek über diese Funktionen.>>>>>> Was ist denn die Fehlermeldung?>>>> Siehe Bild.>> Hast du die Fehlermeldung gelesen?
Uff. Danke für die riesen große Hilfe! Nein, Natürlich nicht.
Du kannst dir ja gerne die Doku zur Funktion durchlesen und mich dann
nochmal fragen.
Dingens schrieb:> mh schrieb:>> Hast du die Fehlermeldung gelesen?>> Uff. Danke für die riesen große Hilfe! Nein, Natürlich nicht.
Gern geschehen! Du solltes das allerdings dringend nachholen.
> Du kannst dir ja gerne die Doku zur Funktion durchlesen und mich dann> nochmal fragen.
Ich sehe nicht so ganz den Sinn. Aber wenn du unbedingt willst. Hast du
die Fehlermeldung gelesen?
Dingens schrieb:> Mark B. schrieb:>> Dingens schrieb:>>> Nur unterstützt Eclipse GCC leider nicht die Funktionen strlen und strcpy.>>> (Ja string und cstring hab ich inkludiert. Hat nichts genützt)>>>> Selbstverständlich verfügt der GCC, oder besser gesagt: die>> C-Standardbibliothek über diese Funktionen.>>>> Was ist denn die Fehlermeldung?>> Siehe Bild.
Das Programm Funktioniert jetzt... Die Lösung: Löschen der
Fehlermeldung... WTF, also das es tatsächlich ein so sonderbares
IDE-Problem ist, hätte ich niemals gedacht... ich bin schockiert und
weiß gar nicht ob ich bei Eclipse bleiben soll.
mh schrieb:> Dingens schrieb:> Das Programm Funktioniert jetzt... Die Lösung: Löschen der> Fehlermeldung... WTF>> Ich hoffe, du hast das fehlende Argument ergänzt.
Ich empfehle dir die Doku. Da fehlt kein Argument.
Dingens schrieb:> Ich empfehle dir die Doku. Da fehlt kein Argument.
Ernsthaft? Ich bin mir relativ sicher, dass ich bis 3 zählen kann und
dein Compiler stimmt mir zu.
mh schrieb:> Dingens schrieb:> Ich empfehle dir die Doku. Da fehlt kein Argument.>> Ernsthaft? Ich bin mir relativ sicher, dass ich bis 3 zählen kann und> dein Compiler stimmt mir zu.
Nur braucht die Funktion nicht zwangsläufig drei Argumente, deshalb
sollte man in die Doku gucken. Aber hey du bist sicher zu schlau dafür,
denn du kannst bis 3. zählen.
Dingens schrieb:> Nur braucht die Funktion nicht zwangsläufig drei Argumente,
Meines Wissens ist das im Standard nicht so.
Hat da gcc eine Spezialversion?
Marc schrieb:> Dingens schrieb:>> Nur braucht die Funktion nicht zwangsläufig drei Argumente,>> Meines Wissens ist das im Standard nicht so.> Hat da gcc eine Spezialversion?
Der Standard ist da ziemlich eindeutig (siehe
http://eel.is/c++draft/cstring.syn). Und gcc hält sich ziemlich sicher
dran.
mh schrieb:> Marc schrieb:> Dingens schrieb:> Nur braucht die Funktion nicht zwangsläufig drei Argumente,>> Meines Wissens ist das im Standard nicht so.> Hat da gcc eine Spezialversion?>> Der Standard ist da ziemlich eindeutig (siehe> http://eel.is/c++draft/cstring.syn). Und gcc hält sich ziemlich sicher> dran.
Und nun?
Oh Mann, Jungs habt ihr's jetzt bald?
Nochmal meine Frage:
Mein gcc meckert, wenn ich keine 3 Parameter nutze.
Kann sein dass Du eine überladene strncpy() nutzt?
Ich finde bei gcc keine Version, in der der dritte
Parameter von strncpy optional ist.
Marc schrieb:> Oh Mann, Jungs habt ihr's jetzt bald?>> Nochmal meine Frage: Mein gcc meckert, wenn ich keine 3 Parameter nutze.> Kann sein dass Du eine überladene strncpy() nutzt?>> Ich finde bei gcc keine Version, in der der dritte Parameter von strncpy> optional ist.
Hallo. Nein. Ich nutze strcpy ohne n!
Aber das war nicht das Problem. Ich hatte genauso Fehlermeldungen bis
ich diese mittels Rechtsklick -> deleted gelöscht habe!
Ich wollte den mh nur etwas ärgern, weil er so arrogant ist und die
Frage nicht richtig gelesen hat. Anfangs hatte ich erwähnt, dass ich
strcpy ohne n! Nutze. Es war etwas schlampig von mir den Screenshot mit
strncpy zu verwenden. Der Fehler war aber identisch.
:)
Dingens schrieb:> mh schrieb:>> Dingens schrieb:>> Und nun?>>>> Gute Frage! Hast du etwas dazu gelernt?>> Immer. Und du?
Nicht über C++. Mir ist die Funktion strncpy schon seit ANSI C bekannt.
Marc schrieb:> Oh Mann, Jungs habt ihr's jetzt bald?>> Nochmal meine Frage:> Mein gcc meckert, wenn ich keine 3 Parameter nutze.> Kann sein dass Du eine überladene strncpy() nutzt?
Das würde undefined behavior auslösen.
> Ich finde bei gcc keine Version, in der der dritte> Parameter von strncpy optional ist.
Warum sollte gcc das tun? Dafür gibts strcpy?!
Also Sorry, aber dieses Gehabe war absolut unnötig.
Du schreibst nur dass strcpy nicht geht und im Screenshot nutzt du
strncpy. Und dazu die Fehlermeldung.
Du schreibst nicht, dass du DANACH wieder strcpy nutzt.
Dieses Gegockeln hat micht jetzt ne Stunde gekostet und ich wollte nur
helfen/verstehen. Das was Ihr hier tut hat das Forum nicht verdient!
Marc schrieb:> Also Sorry, aber dieses Gehabe war absolut unnötig.>> Du schreibst nur dass strcpy nicht geht und im Screenshot nutzt du> strncpy. Und dazu die Fehlermeldung.> Du schreibst nicht, dass du DANACH wieder strcpy nutzt.>> Dieses Gegockeln hat micht jetzt ne Stunde gekostet und ich wollte nur> helfen/verstehen. Das was Ihr hier tut hat das Forum nicht verdient!
Dafür entschuldige ich mich bei dir.
mh schrieb:>> Kann sein dass Du eine überladene strncpy() nutzt?> Das würde undefined behavior auslösen.
Nein, probiers aus, es geht:
// Selten dämlicher Code, aber unter C++ geht's
char *strncpy(char *dest, const char *src) {
return strncpy(dest,src,100);
}
Compiliert mit gcc in C++11, wie oben beschrieben.
>> Ich finde bei gcc keine Version, in der der dritte>> Parameter von strncpy optional ist.> Warum sollte gcc das tun? Dafür gibts strcpy?
Nicht's für ungut, aber deine Art rhetorische Fragen zu stellen, helfen
nicht immer.
Besondern wenn der gleiche Charakter antwortet...
BTW: GCC tut einige Dinge die nicht mit dem Standard konform sind (wenn
man es will).
Schönen Abend.
Marc schrieb:> Dieses Gegockeln hat micht jetzt ne Stunde gekostet und ich wollte nur> helfen/verstehen. Das was Ihr hier tut hat das Forum nicht verdient!
Es tut mir Leid, dass du Zeit damit verschwendet hast. Allerdings bin
ich nicht sicher, warum ich mit daran Schuld sein soll. Ich hab dir
schon um 21:36 geantwortet, dass der Standard nur die 3 Parameter
Version vorsieht.
Marc schrieb:> Nein, probiers aus, es geht:> // Selten dämlicher Code, aber unter C++ geht's> char *strncpy(char *dest, const char *src) {> return strncpy(dest,src,100);> }> Compiliert mit gcc in C++11, wie oben beschrieben.
Nur weil es ohne Fehler oder Warnung compiliert, bedeutet nicht, dass es
nicht UB ist.
Aber ich muss meine Vorherige Aussage korrigieren. Es ist nicht UB, da
du dieses strncpy nicht im namespace std definierst oder deklarierst.
Allerdings sagt der Standard, es ist "unspecified", ob strncpy außerhalb
von namespace std bekannt ist (std::strncpy gibt es sicher, strncpy
nicht).
Dingens schrieb:> Mark B. schrieb:>> Dingens schrieb:>>> Nur unterstützt Eclipse GCC leider nicht die Funktionen strlen und strcpy.>>> (Ja string und cstring hab ich inkludiert. Hat nichts genützt)>>>> Selbstverständlich verfügt der GCC, oder besser gesagt: die>> C-Standardbibliothek über diese Funktionen.>>>> Was ist denn die Fehlermeldung?>> Siehe Bild.
So viele Fehler in 3 Zeilen Code...
merciless