Ich nutze seit Gestern Kubuntu (in Virtualbox). Nun versuche ich als angehender Informatiker selbstgeschriebenen Ansi konformen C-Quelltext zu kompilieren. Unter Codeblocks bekomme ich immer die Fehlermeldung "it seemed the Project hasn't been built yet. do you want to build it now?" (ja ich habe vorher auf "build" geklickt) wenn diese Fehllermeldung dreimal mit "Yes" beantwortet wurde zeigt es an "Process terminated with status 127". Wenn ich versuche die sources mit gcc über das Terminal zukompilieren zeigt es (auch mit sudo) an "no such file or directionary". in dolphin ist die datei vorhanden. habe meine eingaben auf tippfehler untersucht aber sie sind korrekt. Mein source code ist auch vollkommen korrekt. unter windows lässt er sich mit code::blocks kompilieren und läuft sogar unter windows 98 besser als ich mir das erhofft hätte.
Kompilieren von ANSI-C mit gcc oder Code::blocks
Anmeldungsdatum: Beiträge: 92 Wohnort: ~/ |
|
||
Moderator, Webteam
![]() Anmeldungsdatum: Beiträge: 5815 Wohnort: Ankh-Morpork |
Ok, mal ein paar Sachen die wir brauchen könnten:
|
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 92 Wohnort: ~/ |
befehle wie im oberen teil dieser wikiseite beschrieben. http://wiki.ubuntuusers.de/GCC ausgabe stehl in meinem vorherigen beitrag. betroffene Dateien: sort_01.c (selbst geschriebene C-source, die nur ANSI-C enthält. enthaltene header: stdio.h und stlib.h |
||
Moderator, Webteam
![]() Anmeldungsdatum: Beiträge: 5815 Wohnort: Ankh-Morpork |
Gut, das nächste mal les dir bitte vorher die Foren-Syntax durch, damit kannst du das nämlich deutlich schöner und lesbarer gestalten. no such file or directory deutet darauf hin das die Datei nicht existiert (Oh wunder): Bist du dir sicher das du den Befehl im richtigen Verzeichnis ausgeführt hast? Bei Code::Blocks kann ich dir leider nicht helfen, ich selbst nutze KDevelop mit CMake. |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 92 Wohnort: ~/ |
Habe die C-sources wie im wiki beschrieben im homeverzeichniss gespeichert. sie ist vorhanden. Im Windows Codeblocks läuft das ganze. und nein ich habe keine Windowsspezifischen einträge gemacht. mit syntax hab ichs nicht so ( ich weiß sollte ich eigentlich, da sie uns das leben vereinfacht...) |
||
Moderator, Webteam
![]() Anmeldungsdatum: Beiträge: 5815 Wohnort: Ankh-Morpork |
Ok, dann probieren wir doch einfach mal das Beispiel durch: Bitte einfach folgendes einfach mal in ein Teminal per copy&past kopieren (Wir erstellen die HalloLinux.c, kompilieren und führen aus, alles in einem Rutsch):
Am Ende noch einmal Enter drücken um das Programm auch auszuführen. Dabei sollten keine Probleme auftreten. |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 92 Wohnort: ~/ |
Das mit dem in einem rutsch sagt garnichts und beim versuch über konsole uu kompilieren erscheint wieder das selbe wie vorher auch. |
||
Moderator, Webteam
![]() Anmeldungsdatum: Beiträge: 5815 Wohnort: Ankh-Morpork |
Bitte poste doch einmal die komplette Konsolenausgabe von der aktion. So im Dunkeln ohne zu wissen was da bei dir passiert mag ich nämlich überhaupt nicht. Um dir zu verdeutlichen was ich meine: Bei mir siehts so aus: philipp@faramir-linux:~$ echo '/* HalloLinux.c */ > #include <stdio.h> > int main(void) { > printf("Hallo Linux!\n"); > return 0; > }' > HalloLinux.c philipp@faramir-linux:~$ philipp@faramir-linux:~$ gcc -o HalloLinux HalloLinux.c philipp@faramir-linux:~$ ./HalloLinux Hallo Linux! philipp@faramir-linux:~$ Bitte benutz für deine Augabe auch Code-Blöcke. |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 92 Wohnort: ~/ |
ach den text auch inn die konsole... ich idiot habs mit kate versucht. warte... |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 92 Wohnort: ~/ |
}}} ok das klappt schonmal... probiere das mit dem anderen text jetzt auch |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 92 Wohnort: ~/ |
output lautet wie folgt: echo matthias@LinuxPRO:~$ #include <stdio.h> matthias@LinuxPRO:~$ #include <stdlib.h> matthias@LinuxPRO:~$ int main(void); bash: Syntaxfehler beim unerwarteten Wort `(' matthias@LinuxPRO:~$ int main(void) bash: Syntaxfehler beim unerwarteten Wort `(' matthias@LinuxPRO:~$ { > > unsigned int uiAnz; > unsigned int uiCount; > unsigned int uiX; > unsigned int uiVerg; > double daTemp[2]; > int iReturn; > do bash: Syntaxfehler beim unerwarteten Wort `do' matthias@LinuxPRO:~$ { > printf("Geben Sie bitte die Anzahl der zu Sortierenden Zahlen ein und \nbestaetigen sie mit Enter:"); bash: Syntaxfehler beim unerwarteten Wort `"Geben Sie bitte die Anzahl der zu Sortierenden Zahlen ein und \nbestaetigen sie mit Enter:"' matthias@LinuxPRO:~$ scanf("%d", &uiAnz); bash: Syntaxfehler beim unerwarteten Wort `"%d",' matthias@LinuxPRO:~$ double daZahlen[uiAnz]; // Die Anwendung »double« ist momentan nicht installiert. Sie können es durch folgende Eingabe installieren: sudo apt-get install plotutils bash: //: ist ein Verzeichnis. matthias@LinuxPRO:~$ for (uiCount=0; uiCount<uiAnz; uiCount=uiCount+1) bash: Syntaxfehler beim unerwarteten Wort `(' matthias@LinuxPRO:~$ { > printf("Geben Sie die naechste Zahl ein und bestaetigen sie mit Enter. \nVerwenden Sie bitte einen Punkt als Komma:"); bash: Syntaxfehler beim unerwarteten Wort `"Geben Sie die naechste Zahl ein und bestaetigen sie mit Enter. \nVerwenden Sie bitte einen Punkt als Komma:"' matthias@LinuxPRO:~$ scanf("%lf", &daZahlen[uiCount]); bash: Syntaxfehler beim unerwarteten Wort `"%lf",' matthias@LinuxPRO:~$ } bash: Syntaxfehler beim unerwarteten Wort `}' matthias@LinuxPRO:~$ do bash: Syntaxfehler beim unerwarteten Wort `do' matthias@LinuxPRO:~$ { > uiX=0; > for (uiCount=1; uiCount<uiAnz; uiCount=uiCount+1) bash: Syntaxfehler beim unerwarteten Wort `(' matthias@LinuxPRO:~$ { > uiVerg=uiCount-1; > if (daZahlen[uiVerg]<daZahlen[uiCount]) > { > } bash: Syntaxfehler beim unerwarteten Wort `}' matthias@LinuxPRO:~$ else bash: Syntaxfehler beim unerwarteten Wort `else' matthias@LinuxPRO:~$ { > daTemp[0]=daZahlen[uiVerg]; > daTemp[1]=daZahlen[uiCount]; > daZahlen[uiVerg]=daTemp[1]; > daZahlen[uiCount]=daTemp[0]; > uiX=uiX+1; > } matthias@LinuxPRO:~$ } bash: Syntaxfehler beim unerwarteten Wort `}' matthias@LinuxPRO:~$ }while (uiX>0); bash: Syntaxfehler beim unerwarteten Wort `uiX' matthias@LinuxPRO:~$ printf("Sortierte Zahlen in aufsteigender Reihenfolge:\n"); bash: Syntaxfehler beim unerwarteten Wort `"Sortierte Zahlen in aufsteigender Reihenfolge:\n"' matthias@LinuxPRO:~$ for (uiCount=0; uiCount<uiAnz; uiCount=uiCount+1) bash: Syntaxfehler beim unerwarteten Wort `(' matthias@LinuxPRO:~$ { > printf("%lf\n", daZahlen[uiCount]); bash: Syntaxfehler beim unerwarteten Wort `"%lf\n",' matthias@LinuxPRO:~$ } bash: Syntaxfehler beim unerwarteten Wort `}' matthias@LinuxPRO:~$ printf("Sortierte Zahlen in absteigender Reihenfolge:\n"); bash: Syntaxfehler beim unerwarteten Wort `"Sortierte Zahlen in absteigender Reihenfolge:\n"' matthias@LinuxPRO:~$ for (uiCount=uiAnz; uiCount>0; uiCount=uiCount-1) bash: Syntaxfehler beim unerwarteten Wort `(' matthias@LinuxPRO:~$ { > printf("%lf\n", daZahlen[uiCount-1]); bash: Syntaxfehler beim unerwarteten Wort `"%lf\n",' matthias@LinuxPRO:~$ } bash: Syntaxfehler beim unerwarteten Wort `}' matthias@LinuxPRO:~$ printf("Zum Wiederholen druecken Sie bitte \"1\". Zum Beenden druecken Sie eine beliebige\nandere Ziffer.\nBestaetigen sie mit Enter. \n"); bash: Syntaxfehler beim unerwarteten Wort `"Zum Wiederholen druecken Sie bitte \"1\". Zum Beenden druecken Sie eine beliebige\nandere Ziffer.\nBestaetigen sie mit Enter. \n"' matthias@LinuxPRO:~$ scanf("%d", &iReturn); bash: Syntaxfehler beim unerwarteten Wort `"%d",' matthias@LinuxPRO:~$ if (iReturn==1) > { > > } bash: Syntaxfehler beim unerwarteten Wort `}' matthias@LinuxPRO:~$ else bash: Syntaxfehler beim unerwarteten Wort `else' matthias@LinuxPRO:~$ { > return 0; > } bash: return: can only `return' from a function or sourced script matthias@LinuxPRO:~$ }while (iReturn==1); bash: Syntaxfehler beim unerwarteten Wort `iReturn==1' matthias@LinuxPRO:~$ } >sort_01.c bash: Syntaxfehler beim unerwarteten Wort `}' matthias@LinuxPRO:~$ matthias@LinuxPRO:~$ gcc -o Sort01 sort_01.c sort_01.c:1:5: warning: missing terminating ' character sort_01.c:1: error: missing terminating ' character In file included from /usr/include/stdio.h:34, from sort_01.c:11: /usr/lib/gcc/i486-linux-gnu/4.4.3/include/stddef.h:211: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘typedef’ In file included from /usr/include/stdio.h:75, from sort_01.c:11: /usr/include/libio.h:332: error: expected specifier-qualifier-list before ‘size_t’ /usr/include/libio.h:364: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/libio.h:373: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/libio.h:495: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘_IO_sgetn’ In file included from sort_01.c:11: /usr/include/stdio.h:296: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/stdio.h:302: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/stdio.h:314: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/stdio.h:321: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/stdio.h:363: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/stdio.h:365: error: format string argument not a string type /usr/include/stdio.h:367: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/stdio.h:639: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/stdio.h:642: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/stdio.h:652: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/stdio.h:682: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘fread’ /usr/include/stdio.h:688: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘fwrite’ /usr/include/stdio.h:710: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘fread_unlocked’ /usr/include/stdio.h:712: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘fwrite_unlocked’ In file included from sort_01.c:12: /usr/include/stdlib.h:140: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__ctype_get_mb_cur_max’ In file included from sort_01.c:12: /usr/include/stdlib.h:337: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/stdlib.h:367: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/stdlib.h:369: error: nonnull argument with out-of-range operand number (argument 1, operand 4) /usr/include/stdlib.h:471: error: expected ‘)’ before ‘__size’ /usr/include/stdlib.h:473: error: expected ‘)’ before ‘__nmemb’ /usr/include/stdlib.h:485: error: expected declaration specifiers or ‘...’ before ‘size_t’ In file included from /usr/include/stdlib.h:497, from sort_01.c:12: /usr/include/alloca.h:33: error: expected ‘)’ before ‘__size’ In file included from sort_01.c:12: /usr/include/stdlib.h:502: error: expected ‘)’ before ‘__size’ /usr/include/stdlib.h:507: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/stdlib.h:507: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/stdlib.h:751: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/stdlib.h:751: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/stdlib.h:752: error: nonnull argument with out-of-range operand number (argument 1, operand 5) /usr/include/stdlib.h:756: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/stdlib.h:756: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/stdlib.h:757: error: nonnull argument with out-of-range operand number (argument 1, operand 4) /usr/include/stdlib.h:834: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/stdlib.h:837: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/stdlib.h:841: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/stdlib.h:845: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/stdlib.h:854: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/stdlib.h:858: error: expected declaration specifiers or ‘...’ before ‘size_t’ /usr/include/stdlib.h:865: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘mbstowcs’ /usr/include/stdlib.h:868: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘wcstombs’ sort_01.c:79: error: expected identifier or ‘(’ before ‘>’ token matthias@LinuxPRO:~$ ./Sort01 bash: ./Sort01: No such file or directory |
||
Moderator, Webteam
![]() Anmeldungsdatum: Beiträge: 5815 Wohnort: Ankh-Morpork |
Ähm, das funktioniert leider nicht ganz so wie du dir das vorstellst 😀. Ich empfehle für die Zukunft die Grundlagenartikel im Wiki zur Konsolenbenutzung und Scripting einfach mal zu lesen 😉. Wechsel jetzt einfach mal bitte mit Dolphin in DAS Verzeichnis in dem du deine Datei gespeichert hast. Dann drückst du F4, das öffnet ein Teminal in Dolphin mit dem richtigen Pfad. Da tippst du dann bitte nochmal die folgenden Befehle ein und gibst die Ausgabe wieder hier ein. ls -l gcc -o sort_01 sort_01.c ./sort_01 Wenn das funktioniert haben wir dein Problem darauf zurückgeführt das du auf der Konsole vermutlich den falschen Pfad drin hattest. Dann müssen wir nur noch das Problem mit Code:Blocks lösen. |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 92 Wohnort: ~/ |
insgesamt 16 -rw-r--r-- 1 root root 170 2010-11-08 14:23 HalloLinux.c -rw-r--r-- 1 root root 169 2010-11-08 14:23 HalloLinux.c~ drwxr-xr-x 22 matthias matthias 4096 2010-11-08 19:31 matthias -rw-r--r-- 1 root root 2566 2010-11-07 20:43 sort_01.c matthias@LinuxPRO:/home$ gcc -o sort_01 sort_01.c /usr/bin/ld: cannot open output file sort_01: Permission denied collect2: ld returned 1 exit status matthias@LinuxPRO:/home$ ./sort_01 bash: ./sort_01: No such file or directory matthias@LinuxPRO:/home$ wenn kosole laufen würde wäre ich zufrieden. |
||
Moderator, Webteam
![]() Anmeldungsdatum: Beiträge: 5815 Wohnort: Ankh-Morpork |
Schauen wir uns die Ausgabe doch mal genauer an, die interessanten Teile habe ich mal markiert. insgesamt 16 -rw-r--r-- 1 root root 170 2010-11-08 14:23 HalloLinux.c -rw-r--r-- 1 root root 169 2010-11-08 14:23 HalloLinux.c~ drwxr-xr-x 22 matthias matthias 4096 2010-11-08 19:31 matthias -rw-r--r-- 1 root root 2566 2010-11-07 20:43 sort_01.c matthias@LinuxPRO:/home$ gcc -o sort_01 sort_01.c /usr/bin/ld: cannot open output file sort_01: Permission denied collect2: ld returned 1 exit status matthias@LinuxPRO:/home$ ./sort_01 bash: ./sort_01: No such file or directory matthias@LinuxPRO:/home$ Dreimal darfst du raten was das Problem ist: Die Datei gehört dem Nutzer root, deshalb hast du keinen Zugriff darauf. Kommt warscheinlich durch dein Herumspielen mit sudo. Solange du noch nicht viel Ahnung von Linux hast würde ich empfehlen das sein zu lassen, in jedem Fall aber erstmal den Wikiartikel zu sudo duchzulesen. Zur Lösung: Hier müssen wir dann doch sudo verwenden, da wir nur dadurch zugriff auf Dateien bekommen, die root besitzt. sudo chown matthias:matthias sort_01.c chown ändert den Benutzer von Dateien, und zwar gibt man dabei als Parameter noch nutzer:gruppe dateiname(n) an. Da du die Dateien zudem nicht in deinem Home-Verzeichnis sondern eins darüber gespeichert hast verschieben wir die Datei erstmal und löschen die beiden nicht mehr benötigten HalloLinux-Dateien. mv sort_01.c matthias/ sudo rm HalloLinux* Dann sollten die letzten beiden Befehle aus meinem letzten Post wieder klappen, allerdings vorher bitte in dein Home-Verzeichnis (/home/matthias) wechseln wo sich die entsprechende Datei ja jetzt befindet. |
||
(Themenstarter)
Anmeldungsdatum: Beiträge: 92 Wohnort: ~/ |
insgesamt 52 drwxr-xr-x 2 matthias matthias 4096 2010-11-06 20:47 Bilder drwxr-xr-x 2 matthias matthias 4096 2010-11-06 20:47 Desktop drwxr-xr-x 2 matthias matthias 4096 2010-11-07 10:49 Dokumente drwxr-xr-x 2 matthias matthias 4096 2010-11-06 20:47 Downloads -rwxr-xr-x 1 matthias matthias 7144 2010-11-08 19:20 HalloLinux -rw-r--r-- 1 matthias matthias 102 2010-11-08 19:20 HalloLinux.c drwxr-xr-x 2 matthias matthias 4096 2010-11-06 20:47 Musik drwxr-xr-x 2 matthias matthias 4096 2010-11-06 20:47 Öffentlich drwxr-xr-x 4 matthias admin 4096 2010-11-07 08:27 sort_01 -rw-r--r-- 1 matthias matthias 2566 2010-11-07 20:43 sort_01.c drwxr-xr-x 2 matthias matthias 4096 2010-11-06 20:47 Videos drwxr-xr-x 2 matthias matthias 4096 2010-11-06 20:47 Vorlagen matthias@LinuxPRO:~$ gcc -o sort_01 sort_01.c /usr/bin/ld: cannot open output file sort_01: Is a directory collect2: ld returned 1 exit status matthias@LinuxPRO:~$ ./sort_01 bash: ./sort_01: ist ein Verzeichnis. matthias@LinuxPRO:~$ |