C-Routinen von Windows nach GNU/Linux
-
dannyc schrieb:
test2.cpp: In function
char* substr(const char*, int, int)': test2.cpp:52:
exit' undeclared (first use this function)verschwindet mit:
#include <stdlib.h>
oder
#include <cstdlib>dannyc schrieb:
test2.cpp: In function
char* ltrim(char*)': test2.cpp:95:
isspace' undeclared (first use this function)verschwindet mit:
#include <ctype.h>dannyc schrieb:
test2.cpp:107:2: warning: no newline at end of file
blödsinnigste gcc-warning die es gibt. geh ans ende deines sourcecodes und drücke einfach <enter>. weg ist es.
-
net schrieb:
dannyc schrieb:
test2.cpp:107:2: warning: no newline at end of file
blödsinnigste gcc-warning die es gibt. geh ans ende deines sourcecodes und drücke einfach <enter>. weg ist es.
wird das nicht vom C++ Standard so gefordert? Naja, eine gute IDE könnte, einfach immer ein \n an Code Dateien hängen
-
kingruedi schrieb:
wird das nicht vom C++ Standard so gefordert?
wenn ja, dann haben die verfasser aber vorher ein paar tüten geraucht
-
Hallo!
nochmals vielen Dank für eure Hilfe. Ich bin leider noch nicht dazu gekommen, euch was zu schreiben. A little Bit Stress.
Hab jetzt mal alle Änderungen gemacht und den ganzen Kram nochmals durch den GNU-Compiler gejagt. Was soll ich sagen. Die Fehlermeldungen werden immer weniger!
Ich hab die aktuellen Meldungen nochmal mitgebracht.
/tmp/ccKwKgol.o: In function
substr(char const*, int, int)': /tmp/ccKwKgol.o(.text+0x171): undefined reference to
operator new[](unsigned)'
/tmp/ccKwKgol.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit statusMal ehrlich, ich finde das ziemlich "idiotisch", das man am Ende des Codes einen Return einfügen muss. Was hat das für einen sinnvollen Zweck? Wahrscheinlich wollten die Verfasser von C++ unbedingt noch eine Fehlermeldung unterbringen. Auf Teufel komm raus. Naja, muss man halt mit leben.
Würde mich freuen, nochmals von euch zu hören.
Schöne, sonnige Grüße
Dannyc
-
Linker mit g++ aufrufen, nicht gcc.
-
Hallo!
Ich habs jetzt mit g++ kompiliert und es hat geklappt. Er speichert mir jetzt eine Datei a.out. Linux zeigt diese als "Ausführbare Datei" an. Wenn ich jedoch in der Konsole a.out angebe, kriege ich die Meldung "Befehl nicht gefunden". Benenne ich das Ding um, in bspw: programm od. test dann klappt es auch nicht. Normalerweise muss ich doch die Textausgaben auf den Schirm sehen, oder?
Vielleicht weiss ja einer Rat.
Schöne Grüße
Dannyc
-
./a.out oder ./programm
-
Hallo!
Wenn ich mein Programm jetzt mit bspw. ./a.out aufrufe, dann erhalte ich folgende Meldung "SPEICHERZUGRIFFSFEHLER". Warum? Was kann ich dagegen tun?
Schöne Grüße
Dannyc
-
Das heißt, daß du igendwo in deinem Programm auf Speicher zugreifst, der dir nicht gehört (z.B. über die Array-Grenzen hinaus o.ä.). Du könntest mal mit dem Debugger durch das Programm gehen und den Fehler suchen.
-
RTFM / RTFF.
. ist nicht im Pfad, daher ./a.out
-
Ringding schrieb:
RTFM / RTFF.
. ist nicht im Pfad, daher ./a.out
Bitte? Leider habe ich deine Aussage nicht so ganz verstanden! RTFM??!?!?!??!?!?
-
Das heißt: Read The Fucking Manual / Read The Fucking FAQ
(aber die eigentliche Frage war ja schon beantwortet)
-
fubar schrieb:
Das heißt: Read The Fucking Manual / Read The Fucking FAQ
(aber die eigentliche Frage war ja schon beantwortet)
Wieder was neues gelernt! Danke!
-
net schrieb:
kingruedi schrieb:
wird das nicht vom C++ Standard so gefordert?
wenn ja, dann haben die verfasser aber vorher ein paar tüten geraucht
... ich würde einfach sagen, dass jede gültige Textdatei zumindest unter Unix auf einen Zeilenumbruch endet. Dadurch wird auch keine neue Zeile begonnen, sondern nur die angefangene abgeschlossen. Ist (zumindest unter Unix) so üblich.
Zum Testen: Mit einem Texteditor unter Unix eine Textdatei erstellen, die nur eine Zeile enthält mit dem Inhalt "foobar" und als foobar.txt speichern. "cat foobar.txt|hexdump" wird dir den Zeilenumbruch dann zeigen.
-
fubar schrieb:
Das heißt: Read The Fucking Manual / Read The Fucking FAQ
(aber die eigentliche Frage war ja schon beantwortet)
öhm, Fucking bitte durch Fine ersetzen