www.vorkurse.de
Ein Projekt von vorhilfe.de
Die Online-Kurse der Vorhilfe

E-Learning leicht gemacht.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Teams · Forum · Wissen · Kurse · Impressum
Forenbaum
^ Forenbaum
Status Mathe-Vorkurse
  Status Organisatorisches
  Status Schule
    Status Wiederholung Algebra
    Status Einführung Analysis
    Status Einführung Analytisc
    Status VK 21: Mathematik 6.
    Status VK 37: Kurvendiskussionen
    Status VK Abivorbereitungen
  Status Universität
    Status Lerngruppe LinAlg
    Status VK 13 Analysis I FH
    Status Algebra 2006
    Status VK 22: Algebra 2007
    Status GruMiHH 06
    Status VK 58: Algebra 1
    Status VK 59: Lineare Algebra
    Status VK 60: Analysis
    Status Wahrscheinlichkeitst

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "C/C++" - Kompilieren
Kompilieren < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "C/C++"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Kompilieren: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 21:51 Mi 27.04.2011
Autor: David90

Aufgabe
Programmiere das Programm Hello World

Hallo, also ich hab irgendwie ein Problem beim kompilieren meiner datei, Also die aufgabe ist dass ich ein prog schreiben soll, das auf dem bildschirm die worte "hello world" ausgibt. so meine datei hab ich mit gedit geschrieben mit linux (ubuntu) und sie sieht so aus:
#include <stdio.h>

int main ()
printf("hello world");
{
return 0,
}
das hab ich abgespeichert und jetz wollte ich die datei im terminal kompilieren mit dem befehl gcc -o wall HelloWorld(so heißt die Datei).out HelloWorld.c aber ich bin mir mit dem out und dem c nicht sicher weil hinter dem dateinamen auch kein c steht...
kann mir jemadn helfen?
Danke schon mal
gruß david

        
Bezug
Kompilieren: Antwort
Status: (Antwort) fertig Status 
Datum: 21:08 Do 28.04.2011
Autor: chrisno

Da sonst niemand antwortet:
Nenne Deine Datei um, so dass sie HelloWorld.c heißt. Dann gibt das Kommando zum Kompilieren. Probeir einfach aus, Du wirst den Rechner dabei nicht ruinieren.
Für die Details ist meine kurze Begegenung mit C zu lange her.

Bezug
                
Bezug
Kompilieren: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 21:56 Do 28.04.2011
Autor: David90

schade ich dachte hier beschäftigen sich noch viele mit c xD habs umbenannt, und habs mit gcc kompiliert...aber wenn ich jetzt den namen Helloworld.c eingeben und enter drücke um das prog auszuführen steht da nur: no command found :( voll dumm weil mir beim kompilieren kein error angezeigt wird, mein prog also richtig is :(
hat jemand vllt dazu eine idee?:(

Bezug
                        
Bezug
Kompilieren: Antwort
Status: (Antwort) fertig Status 
Datum: 22:55 Do 28.04.2011
Autor: chrisno

Bewirkt dein Kommando, dass ein "Executable" erzeugt wird? Oder musst Du noch ein weiteres Kommando eingeben? (Link?) Geht es mit make?
(Wie geagt, das ist alles so lange her.)
Wie heißt die Datei, die der Compiler erzeugt hat? Ob sie neu ist, erkennst Du am Datum.

Bezug
                        
Bezug
Kompilieren: Antwort
Status: (Antwort) fertig Status 
Datum: 23:09 Do 28.04.2011
Autor: felixf

Moin!

> schade ich dachte hier beschäftigen sich noch viele mit c
> xD habs umbenannt, und habs mit gcc kompiliert...aber wenn
> ich jetzt den namen Helloworld.c eingeben und enter drücke
> um das prog auszuführen steht da nur: no command found :(
> voll dumm weil mir beim kompilieren kein error angezeigt
> wird, mein prog also richtig is :(

In deinem gcc-Befehl hier heisst die Ausgabedatei HelloWorld.out. Du musst also nicht HelloWorld.c starten, sondern HelloWorld.out. Und da das aktuelle Verzeichnis vermutlich nicht zum Pfad gehoret (ich vermute du bist unter Linux oder einem sonstigen unixoiden Betriebssystem), musst du ./HelloWorld.out eingeben um das Programm zu starten (bzw. sonst den Pfad angeben wo sich HelloWorld.out befindet).

Wenn du das Programm uebrigens so wie in der ersten Frage geschrieben hast, konnte es sicher nicht kompiliert werden.

LG Felix


Bezug
        
Bezug
Kompilieren: Antwort
Status: (Antwort) fertig Status 
Datum: 23:11 Do 28.04.2011
Autor: felixf

Moin David!

> Programmiere das Programm Hello World
>  Hallo, also ich hab irgendwie ein Problem beim kompilieren
> meiner datei, Also die aufgabe ist dass ich ein prog
> schreiben soll, das auf dem bildschirm die worte "hello
> world" ausgibt. so meine datei hab ich mit gedit
> geschrieben mit linux (ubuntu) und sie sieht so aus:

>

>  #include <stdio.h>
>  
> int main ()

Diese beiden Zeilen:

>  printf("hello world");
>  {

sollten schnellstens ihre Reihenfolge aendern, ansonsten wird das nichts.

>  return 0,

Und hier sollte kein Komma, sondern ein Semikolon stehen.

>  }
>
>  das hab ich abgespeichert und jetz wollte ich die datei im
> terminal kompilieren mit dem befehl gcc -o wall
> HelloWorld(so heißt die Datei).out HelloWorld.c aber ich

Na, sicher nicht. Du hast hoffentlich

> gcc -Wall -o Helloworld.out HelloWorld.c

eingegeben. Ansonsten wird eine Ausgabedatei names "wall" erzeugt, und der Compiler wird sich beschweren, dass er die Eingabedatei HelloWorld.out nicht findet.

> bin mir mit dem out und dem c nicht sicher weil hinter dem
> dateinamen auch kein c steht...

Der Quellcode muss schon HelloWorld.c heissen. Die ausfuehrbare Datei heisst dann HelloWorld.out, wenn du das so eingibst wie ich es geschrieben hab.

LG Felix


Bezug
                
Bezug
Kompilieren: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 08:08 Fr 29.04.2011
Autor: Event_Horizon

Hallo!

Sollte die Benutzung einer Endung nicht egal sein? Natürlich sollte man sie, wenn vorhanden, auch dem GCC mitgeben, weil er sonst die Datei nicht findet. Aber kolt der sich irgendwelche Infos aus der Endung?

(Dennoch sollte man Endungen IMMER verwenden, speziell, da sich später zu fast jeder .c-Datei noch eine .h-Datei gleichen Namens gesellen wird)



Nochwas:

Mit dem Befehl ll kann man sich alle Dateien im Verzeichnis anzeigen lassen. Welche davon ausführbar sind, erkennt man an dem x in

-rwxr-xr-x

Das sollte nur für die erzeugte ausgabedatei gesetzt sein. (Und die Datei wird deshalb vermutlich auch farblich hervorgehoben)


Bezug
                        
Bezug
Kompilieren: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 09:32 Fr 29.04.2011
Autor: felixf

Moin,

> Sollte die Benutzung einer Endung nicht egal sein?
> Natürlich sollte man sie, wenn vorhanden, auch dem GCC
> mitgeben, weil er sonst die Datei nicht findet. Aber kolt
> der sich irgendwelche Infos aus der Endung?

doch, die Endung ist wichtig. Es gibt da naemlich einen Parameter -x, und aus der manpage-Beschreibung dessen:

1:
2:        -x language
3:            Specify explicitly the language for the following input files
4:            (rather than letting the compiler choose a default based on the
5:            file name suffix).  This option applies to all following input
6:            files until the next -x option.  Possible values for language are:
7:
8:                    c  c-header  c-cpp-output
9:                    c++  c++-header  c++-cpp-output
10:                    objective-c  objective-c-header  objective-c-cpp-output
11:                    objective-c++ objective-c++-header objective-c++-cpp-output
12:                    assembler  assembler-with-cpp
13:                    ada
14:                    f77  f77-cpp-input f95  f95-cpp-input
15:                    java
16:
17:        -x none
18:            Turn off any specification of a language, so that subsequent files
19:            are handled according to their file name suffixes (as they are if
20:            -x has not been used at all).


Ohne Endung muss man also explizit sagen, was es fuer eine Datei ist.

> (Dennoch sollte man Endungen IMMER verwenden, speziell, da
> sich später zu fast jeder .c-Datei noch eine .h-Datei
> gleichen Namens gesellen wird)

Ja, das eh ;-)

> Nochwas:
>  
> Mit dem Befehl ll kann man sich alle Dateien im Verzeichnis
> anzeigen lassen. Welche davon ausführbar sind, erkennt man
> an dem x in
>
> -rwxr-xr-x
>  
> Das sollte nur für die erzeugte ausgabedatei gesetzt sein.
> (Und die Datei wird deshalb vermutlich auch farblich
> hervorgehoben)

Falls man kein ll-Alias hat oder keine Farben erscheinen, kann man auch manuell mit "ls -l --color" nachhelfen :-) Bei Ubuntu ist das aber normalerweise voreingestellt, dass es funktioniert.

LG Felix


Bezug
                                
Bezug
Kompilieren: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 20:48 Di 03.05.2011
Autor: David90

Ok Leute, also nochmal (hab übrigens eure ganzen tipps ausprobiert und nichts hat geklappt :( z.B. wenn ich ./ vor die datei schreibe die ich ausführen will sagt er mir bash ./:is a directory -.-)

also ich habs nochmal neu geschrieben, in meiner ersten Frage hatte ich nur n paar tippfehler drin xD
also ich schreib mit gedit folgendes:
#include <stdio.h>
int main()
{
printf ("hello world [mm] \n"); [/mm]
return 0;
}
so das speicher ich unter dem namen Helloworld.c ab
dann gehe ich mit cd ins richtige verzeichnis und kompiliere die datei mit dem befehl: gcc -Wall -o Helloworld.out Helloworld.c und enter (es kommt keine fehlermeldung, also ist mein prog richtig)
jetzt hat er eine datei Helloworld.out erstellt, die ich ausführen kann
so ich hab jetz auch nochmal überprüft ob ich im richtigen verzeichnis bin
ich gebe den befehl Helloworld.out ein und es kommt die sch*** fehlermeldung : command not found
ich verstehs einfach nich-.- bin am ende mit meiner weisheit...woran kann das liegen?:( mit ubuntu und dem editor gedit und so muss ich doch in der lage sein ein einfaches prog schreiben zu können oder nicht?:O muss ich etwa noch iwas installieren?:(
bitte dringend um rat:(
danke schon mal
gruß david

Bezug
                                        
Bezug
Kompilieren: Antwort
Status: (Antwort) fertig Status 
Datum: 23:33 Di 03.05.2011
Autor: felixf

Moin!

> Ok Leute, also nochmal (hab übrigens eure ganzen tipps
> ausprobiert und nichts hat geklappt :( z.B. wenn ich ./ vor
> die datei schreibe die ich ausführen will sagt er mir bash
> ./:is a directory -.-)

Naja, hast du ein Leerzeichen nach ./ eingefuegt? Dann ist das kein Wunder...

>  ich gebe den befehl Helloworld.out ein und es kommt die
> sch*** fehlermeldung : command not found
>  ich verstehs einfach nich-.- bin am ende mit meiner

Du musst auch ./Helloworld.out eingeben. Ohne Leerzeichen.

LG Felix


Bezug
                                                
Bezug
Kompilieren: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 18:39 Mi 04.05.2011
Autor: David90

jaaaaaaaaaaaaaaaaaaa danke hat geklappt:) kann das prog jetzt ausführen:) danke dir, war voll verzweifelt^^ dann kann ich ja jetz losprogrammieren xD
hab noch eine frage weil ich will ja auch wissen was die verschiedenen befehle bedeuten:
wieso schreibt man immer int vor das main...also ich weiß dass int für integer steht, also für eine ganze zahl, aber was bedeutet das? etwa dass nur ganze zahlen in der funktion vorkommen oder was? xD


Bezug
                                                        
Bezug
Kompilieren: Antwort
Status: (Antwort) fertig Status 
Datum: 22:04 Mi 04.05.2011
Autor: Event_Horizon

Hallo!

Nein, das wäre ja recht seltsam.

Eine Funktion kann einen Wert zurück geben, und dieser Wert kann z.B. ein INT oder DOUBLE sein. Genau das wird mit dem bezeichner vor der Funktion festgelegt.  Beispiel:

double f(double x){
  return x*x;
}



int main(){

double ergebnis;
ergebnis=f(5);

cout << "Fünf zum Quadrat ist " << ergebnis << endl;

return 0;
}


Oft geben funktionen ein INT zurück, mit dem sie melden, ob es z.B. einen Fehler gab. Eine 0 steht dann für "Alles bestens!"

Die main() gibt auch eine Zahl zurück, und zwar an das aufrufende Programm. Aber davon merkst du meistens nix. Aber stell dir vor, du hast ein Script, welches Dateien auf deinem Rechner verschiebt oder kopiert, und das dafür das cp-Programm benutzt. Das script kann dann erkennen, ob das Kopieren erfolgreich war, oder nicht, je nachdem ob das cp ne 0 oder was anderes zurück gegeben hat.


Eine Funktion MUSS übrigens nichts zurückgeben. Dann schreibt man ein void davor.








Bezug
Ansicht: [ geschachtelt ] | ^ Forum "C/C++"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.vorkurse.de
[ Startseite | Mitglieder | Teams | Forum | Wissen | Kurse | Impressum ]