# wie starte ich gcc bei der suse8.2



## Klaustress (25. Oktober 2003)

schlimm, schlimm;
hab keinen glue wie ich anwendungen mit der console starte...weiß nichmal wie ich das editor-programm "ed" mit der console starte;
obwohl ich lang in den hilfedateien rumgekramt habe

help 
me
tanx


----------



## Dario Linsky (25. Oktober 2003)

Konsolenanwendungen startet man normalerweise, indem man das entsprechende Kommando eingibt...


----------



## Klaustress (26. Oktober 2003)

*wird schon gehen*

vielen dank, dario;
wenn es nicht zu viel verlangt ist, wäre ich dankbar, wenn jemand mir kurz sagen könnte wie ich "hello world" mit der console - mit c programmiert - auf suse8.2 zum laufen bringen kann; ist es hier sinnvoll nur mit der console zu arbeiten, oder gibt es noch eine andere entwicklungsumgebung bei suse, die vielleicht etwas komfortabler ist; 

merci klaus


----------



## JoelH (26. Oktober 2003)

*hmm,*

KDevelop oder Eclipse sind IDEs aber ob das sinnig sit für einen Anfänger !? Ich benutz vim.

Einfach mal in der Konsole gcc --help eingeben dann siehst du welche Optionen du hast um zu kompilieren. Ist keien Heldentat.


----------



## Dario Linsky (26. Oktober 2003)

Zu Hello World: Dafür gibt's bei Google Beispiele für beinahe jede Sprache.
Zum Programmieren davon reicht jeder normale Texteditor, der die Eingabe als ASCII-Text abspeichert (kate, gedit, emacs, vim, etc).
Kompiliert wird das ganze dann mit gcc, näheres findest Du dazu entweder - wie schon gesagt - mit "gcc --help" oder "man gcc".


----------



## Christian Fein (27. Oktober 2003)

Schau mal in mein Tutorial 

http://www.holyfly.de/index.php?go=umleitung

Ganz unten habe ich ein Beispiel das genau Hello World ausgibt.
Ich habe das mit einem HERE Dokument erledigt, aber welche 
Zeile den gcc anläuft bekommst du schon raus damit


----------



## Klaustress (29. Oktober 2003)

*no pain no game*

hm...hab jetzt schon einiges ausprobiert...aber...keine "Hello World"-Ausgabe mit gcc; was hab ich gemacht: 
ich habe eine oder besser zwei dateien mit folgendem Code abgespeichert:
#include <stdio.h>

void main(void)
{
printf("Ich bin ein C-Programm.");
}

Das ganze hab ich einmal mit Format: file.c und file.m (letzteres Format bin ich zufällig in der leider für Anfänger nicht gerade einfachen gcc manual gestoßen);
beim kompilieren am prompt hab ich alle möglich. varianten durchgespielt:
gcc -g -O -c  file.c (oder file.m) usw;    und entsprechen erhielt ich die unterschiedlichsten Meldungen: kann dateiformat nicht erkennen, kann nicht linken, weil linker datei "unused" usw.
komme mir nicht wenig doof vor, weil ich mit der suse nich mal die basics hinbekomme; habe mir auch das Here Dokument angeschaut, was mich aber nur noch mehr verunsichert; ansonsten, kenne ich ja schon so ein paar Grundbegriffe wie Präpozessor, Linker, Compiler usw. und weiß auch so ungefähr, was beim Compilen passieren sollte.
Mich würde also interessieren:
 -Ist der Code in der Datei richtig?
 -Mit welchem Format ruf ich die Datei auf?
 - was muß ich am prompt eingeben?

Vielen Dank für die bisherigen Tips

klaus


----------



## Klaustress (29. Oktober 2003)

*nachtrag*

die include zeile habe ich im lezten beitrag nich richtig wiedergegeben; sie müßte natürlich laut buch foldend lauten:
#include <stdio.h>

gruß klaus


----------



## Klaustress (29. Oktober 2003)

*verwirrung*

is ja niedlich aber der server von tutorials verschluckt einfach folgende zeile, wenn sie richtig in c-syntax geschrieben ist:
#include stdio.h (die zwei sonderzeichen vor-und nach stdio.h werden vom server abgezwackt)


----------



## Christian Fein (29. Oktober 2003)

#include &lt;stdio.h&gt;


----------



## Christian Fein (29. Oktober 2003)

> _Original geschrieben von Christian Fein _
> *#include &lt;stdio.h&gt; *



Datei schreiben.
speichern mit namen hallo.c

$ gcc -o hallo 
$ chmod u+x hallo
$ hallo
Hello World

grüsse


----------



## Klaustress (29. Oktober 2003)

*never ending story!?*

danke christian,
aber...es  nich; ...strapazier...;
Was hab ich gemacht:
ich hab die datei abgespeichert und
dann: gcc -o 
und Dateipfad angegeben; 
Meldung: gcc: no input file

obwohl die Datei sich im pfad findet, in meinem Falle:
 /home/hallo
ich habs dann auch mit den anderen commands versucht, die du angeben hast;
ohne Erfolg; ich denk mal, wenn so ne msg kommt wie "no input file", dann läufts doch grundsätzlich verkehrt; 
das problem ist glaube ich, dass ich halt mit den basics von linux nich vertraut bin, obwohl ich schon so einiges nachgeschaut habe (zB. auch in dem sehr informativen linux - e-book (SelfLinux)
hoffentlich werd ich nich bald aus dem forum geschmissen, mit meinem Kinnerkram
bye klaus


----------



## Christian Fein (29. Oktober 2003)

musst natuerlich das file mitangeben

gcc -o hello hello.c
   -o hello ---- legt den output fest, sprich das ausfuehrbare file ist hello


----------



## Klaustress (29. Oktober 2003)

*nochmal der g-schnabel*

hallo christian
 hab jetzt mal das resultat einer meiner versuche hier wiedergegeben; das mit  der -v option hab ich irgendwo gelesen,  gibt den compilerpozess aus (so ähnlich); ich hab die -v option auch bei chmod comand eingegeben, habs aber auch ohne versucht; dann gegen Ende hab ich manchmal nur "hello" eingeben, wie du es oben umschrieben hast; oder ich habe auch den vollständigen pfad ausprobiert; aber es kommt noch nicht zum gewünschten resultat; vielleicht fehlt ja nur noch ein kleiner - der richtige - dreh;
bye klaus

linux:~ # gcc -o -v hello /home/hello.c
hello(.rodata+0x0): multiple definition of `_fp_hw'
/usr/lib/gcc-lib/i486-suse-linux/3.3/../../../crt1.o(.rodata+0x0): first defined
 here
hello(.data+0x4): In function `__data_start':
:
:
:
:
hello(.text+0xc4): first defined here
/usr/lib/gcc-lib/i486-suse-linux/3.3/../../../crt1.o(.dynamic+0x0): multiple def                           inition of `_DYNAMIC'
hello(.dynamic+0x0): first defined here
collect2: ld returned 1 exit status
linux:~ # chmod u+x -v hello
mode of `hello' changed to 0755 (rwxr-xr-x)
linux:~ # hello
bash: hello: command not found
linux:~ # hello /home/hello.c
bash: hello: command not found
linux:~ #


----------



## Christian Fein (29. Oktober 2003)

*Re: nochmal der g-schnabel*



> _Original geschrieben von Klaustress _
> *
> 
> linux:~ # gcc -o -v hello /home/hello.c
> ...



Wieso machst du das nicht einfach so wie ich dir das 
gezeigt habe.
Denn so hast du leider wieder ein Fehler eingebaut.

Ich sagte mit der -o Option kannst du das Outputfile bestimmen.
sprich
gcc -o hello /home/$user/hello.c

du hast geschrieben

gcc -o -v  ...
damit geht er davon aus deine kompilierte Datei 
heisst -v.

wenn du unbedingt -v (verbose) nutzen willst (wofuer!)
gcc -v  -o hello /bla/zur/datei/hello.c


----------



## Klaustress (29. Oktober 2003)

*es hängt...irgendwie*

hallo nochmal,
hm..is immer n bissel schwierig zu sagen, was man grad so unternommen hat; aber ich hatte es natürlich auch ohne diese -v option versucht; dann hab ich diesen chmod befehl eingegeben, so wie von dir aufgezeigt; bis dahin hat die console gar nichts angezeigt; am schluss hab ich dann variationen eingegeben wie:
hello
hello /home/hello.c
und da hat er nur gesagt: kennt die befehle nicht;
komisch komisch; ich hatte während einer Weiterbildung ein bissel mit C-Grundlagen zu tun, auf einer Win maschine; hmhm...irgendwie hat ich da, zumindest in diesem Stadium des Lernens gar keine Probleme; finde aber auch im netz kein tutorial, das sich mit diesen super simplen fragen beschäftigt;
aber fühl dich nich genervt; ich fands schon sehr nett, dasde solange geholfen hast

gruß klaus


----------



## Christian Fein (29. Oktober 2003)

Weisst du ich bin nicht genervt nur 
muss ich dich auch daran errinnern das du
die Grundlagen unter Linux schon beherrschen solltest.

Und da gehört chmod mit an allererster Stelle hinzu. 
Ebenso was $PATH bedeutet und wie diese gesetzt
wird.

Ich gebe dir den Rat:
Dir ein Buch zu kaufen (oder kostenlos downzuloaden) 
und dieses zu lesen bevor du mit der Programmierung
unter Linux anfängst.
Sonst wirst du immer wieder auf Probleme stossen
die mit ein bischen Grundwissen einfach nicht auftrete.

Zu chmod habe ich ein recht umfangreiches Tutorial 
geschrieben. Zu finden:
http://www.tutorials.de/tutorials135701.html


----------



## Klaustress (29. Oktober 2003)

*muddled through*

puuh...geschafft! 
gibt hello world aus; is aber wirkl. soviel anders als diese windows compiler; is mir peinlich, dass ich so auf der leitung stand; konnt mir das einfach nich richtig vorstellen, dass der output durch noch ne extra datei gehen muß; d.h., dass ich 2 dateien benötige;
werd mir den tutorial - link auf alle fälle beherzigen;
nochmal dolle danke für die tips an christian

grüsse klaus


----------

