Entwicklungsumgebung

Post Reply
Message
Author
Moritz Deißner

Entwicklungsumgebung

#1 Post by Moritz Deißner »

Ich benutze seit einem 1 Jahr Linux und habe mir jetzt ein paar C-Tutorials besorgt.Als ich noch Windows hatte, hatte ich von Borland eine IDE. Doch unter Linux (bzw unter X11) scheint es nur IDE mit solchen blöden "Projekten" zu geben bei denen der Compiler noch nicht mal funktioniert. Kennt nicht einer einene einfache Entwicklungsumgebung für Linux (Text oder X11 ist egal) wo man einfach den Code compilieren kann und fertig?

musi
Posts: 27
Joined: 16. Aug 1999 13:40
Location: Harsewinkel

Re: Entwicklungsumgebung

#2 Post by musi »

Hallo...
Ich nutze in der Regel für "normale" C-Programme xwpe... Für Änderungen den guten alten vi (mit Syntax Highlighting)... Kompiliert wird bei mir nur mit make in einem 2. Fenster... Läuft ganz gut.... Finde ich...
Aber wenn du Programmieren willst, so kann ich dir EMACS empfehlen... Den passend konfiguriert, und dann kannst du damit alles machen (ich nutze ihn nicht mehr, weil er mir zu mächtig ist... und vi gibt es halt auch unter HP-UX und M$...)
Ich hoffe, ich konnte dir helfen...
Bis dahin Musi

Moritz Deißner

Re: Entwicklungsumgebung

#3 Post by Moritz Deißner »

Hi Muski,
dankeschön für dein Posting. Da ich jetzt mal annehmen kann das Du ne ganze Menge drauf hast was C-Prog. betrifft kann ich mich doch mit meiner Frage an dich wenden! Was hat es eigentlich mit diesem "Make" auf sich.Ich habe es schon öfters benutzt um meinen Kernel zu compilieren, doch wo liegt der Unterschied ob ich mein Programm compiliere oder "make(e)"? Und noch was...woher bekomme ich
diese "xwpe" her? Moritz (Moritz.Deissner@gmx.de)

psychozapp
Posts: 85
Joined: 24. Jan 2000 14:28
Location: Nürnberg

Re: Entwicklungsumgebung

#4 Post by psychozapp »

Yoh,

Make ist ein Utility mit dem man das Compilieren und das anschließende Linken automatisieren kann, und das autom.
überprüft ob etwas neu compiliert werden muß,
weil z.B. die Quellen geändert wurden.

cya
PZ

psychozapp
Posts: 85
Joined: 24. Jan 2000 14:28
Location: Nürnberg

Re: Entwicklungsumgebung

#5 Post by psychozapp »

Ach ja mir fällt grad ein du könntest
auch KDevelop nehmen, damit kann man
auch Standard-C Programme schreiben.

cya
PZ

Musi

Re: Entwicklungsumgebung

#6 Post by Musi »

Ich bin doch nur ein kleiner Fisch im großen Becken...

Musi

Re: Entwicklungsumgebung

#7 Post by Musi »

Hallo !
Also zu deiner XWPE Frage: XWPE ist ein freies Programm was du wahrscheinlich bei deiner Distri dabei hast (Bei Suse unter Programmentwicklung )...
Nun aber zum Make:
Wenn du ein Programm hast, so kannst du natürlich immer $gcc -o kompilieren... Wenn du dir aber Arbeit sparen willst, so macht man sich schnell ein kleines makefile...
der make Befehl sucht nach einem "makefile" (kann makefile, Makefile heissen...) und führt ohne Parameter den default durch. Je nach Parameter kannst du den make dazu veranlassen, etwas anderes zu machen... (wie beim Kernel backen.... make menuconfig, make bzImage, etc... alles aus Makefile !)
Am besten schaust du dir mein Beispiel an:
#
# Projekt:
# Pfad:
# Stand:
# Bearbeiter:
#
# Beschreibung:
#
# Make-File mit folgenden Funktionen:
# Uebersetzen von .c Files zu .o Files
# Linken

# Allgemeingueltige Pfadnamen
HOME=<Pfad>
# Aufruf des Compilers
COMP=gcc

# Aufruf des Linkers
LINK=cpclnk

# Flags fuer den Compiler
COMFLG= -c

# Flags fuer den Linker
LNKFLG=

zeile=--------------------------------


#----------------------------------------------
# Modul Programmname (Linken aller Anwender-Files)
#----------------------------------------------
Programmname: Programmname.o tools.o
@echo "***** Linken von Programmname"
cpclnk Programmname tools
@echo "***** Programmname completly created. *****"
@echo $(zeile)
@echo "***** Loeschen der Error Dateien *.err"
rm *.err
@echo $(zeile)


#----------------------------------------------
# Compilieren tools.cc
#----------------------------------------------
tools.o: tools.cc Programmname.h
@echo "***** Compiling : tools.cc"
$(COMP) $(COMFLG) tools.cc 2>tools_cc.err
@echo $(zeile)

#----------------------------------------------
# Compilieren Programmname.cc
#----------------------------------------------
Programmname.o: Programmname.cc Programmname.h
@echo "***** Compiling : Programmname.cc"
$(COMP) $(COMFLG) Programmname.cc 2> Programmname_cc.err
@echo $(zeile)

#-----------------------------------------------
# Aufraeumen des HOME-Verzeichnisses
#-----------------------------------------------
clean:
@echo "**** Cleaning up $(HOME)"
rm $(HOME)*.o

#-----------------------------------------------
# wie clean.... <img src="http://www.pro-linux.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">
#-----------------------------------------------
clear: clean

#-----------------------------------------------
# Erzeugt ein neues Programmname
#-----------------------------------------------
new: clean Programmname

#--------------------------------------------------------------------------
# Ende! -------------------------------------------------------------------

Dieses Make erzeugt aus dem Programmfiles .cc und .h ein Objekt .o und aus dem tools.c eine tools.o Datei. Diese Dateien werden am Schluß gelinkt... Reihenfolge beim Makefile ist so: zuerst Definitionen, dann das oberste Ziel (Programm: ), dann andere Ziele. Hinter diesem "Programmname: " stehen die Objekte, die benötigt werden.
Wenn die nicht da sind , geht er zu den Programmname.o: eintrag und führt diesen erst durch (prüft auch wieder)...

Wie du vielleicht erahnen kannst, ist der default Aufruf: make
Bei nur make wird (wenn der Source sich geändert hat) das Programm neu kompiliert und gelinkt .
Wenn du make new sagst, wird auf jeden Fall ein neues Programm erzeugt.
Wenn du make clear/n sagst, so werden die .o Dateien gelöscht...

Oder schau mal in man make oder in folgende Bücher von Addison-Wesley:
Linux Unix Profitools von Helmut Herold (ganz nett.. klasse make Teil)
oder Anwendungen entwickeln von Michael K. Johnson (Kapitel 4.2 ist über make (verständlicher aber nicht so umfangreich...))

Ich hoffe, daß ich dir helfen konnte...
Bis dahin Musi

Post Reply