• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

was sind "Targets", was ist "make"

Kiamur

Newbie
Hallöle!

Ich bin neu hier. Deswegen erst einmal ein herzliches "Hallo" ! :D

So, zu meiner Frage:

Was sind eigentlich makefiles und Targets?
Ich habe mir gerade erst das neue Suse Linux 9.1 zugelegt, hauptsächlich, weil ich mich sehr stark für die Qt-Klassenbibliothek interessiere, und die ja unter Linux frei erhältlich ist.
Jetzt habe ich mal versucht ein kleines C++ Programm mit Anjuta zu schreiben (noch kein Qt-Projekt).
Beim Generieren (ist wohl das selbe wie "Erstellen" beim Konkurenzprodukt aus Seattle) sagt er mir jetzt, dass "Keine Targets angegeben und keine >>make<<-Steuerdatei gefunden" wurden.

Hmmm, was sind denn nun genau Targets und Makefiles?

Vielen Dank schon mal
Maik
 

hillel

Member
makefiles sind files, in denen die informationen stehen, die benutzt werden, um z.B. aus quellcode objekte zu compilieren und aus den objekten executables zu linken.

tagets sind (uberraschung :wink: ) die ziele, die durch steuerung des makefiles erreicht (gemacht) werden - also einzelne objektfiles oder executables (d.h. fertige programme).

make kenne einige default-targets. wenn man z.B. ein file mist.c hat und das kommando
Code:
make mist
gibt, wird

Code:
internet@linux:~> make mist
cc     mist.c   -o mist
internet@linux:~>

abgearbeitet - ohne das ein Makefile geschrieben wird. hillel will nicht viel mehr schreiben jetzt - also am besten nach make googeln und ein bißchen lesen :wink:
 
OP
Kiamur

Kiamur

Newbie
Ja,ja,ja ich habe den "Googlehinweis" schon befürchtet. . . :wink:

Aaaaber, wenn ich deine Erklärung richtig verstanden habe, und auch noch das dazunehme, was ich mir jetzt ergoogelt habe, dann ist das Makefile doch wohl hauptsächlich dazu da das Kompilieren, Binden usw. in der Konsole zu vereinfachen, so dass man nicht immer komplette Befehle eintippen muss, sonder einfach nur das makefile anstartet, und alles geht etwas schneller von statten, oder?

Warum habe ich denn dann jetzt ein Fehlermeldung im Anjuta? Ich denke doch mal, dass man solche IDEs auch unter Linux dazu entwickelt hat, dass man sich solche Arbeit wie makefile-erstellen sparen kann, oder?

Ich hoffe hillel hat noch mal Lust was dazu zu schreiben . . . :wink:

Gruß
Maik
 

oc2pus

Ultimate Guru
Bemerkung am Rande:
make und targets haben nicht zwangsläufig mit Compiler zu tun;

zum Beispiel:
ripmake ist ein Tool um mit make aus einer avi-Datei ein SVCD-image zu erstellen.
 

stefan_m

Newbie
Das Thema ist in der Tat ziemlich grundlegend und weitläufig. Ich gebe mal ein paar subjektive Antworten.

IDEs sind auch unter LINUX dazu da das Leben einfacher zu machen, manchmal kann es jedoch bei einem kleinen Programm oder Beispielprojekt einfacher und dem Verständnis zuträglicher sein auf der Kommandozeile zu compilieren/linken da der Overhead der von einer IDE erzeugten Dateien manchmal verwirrt. Prinzipiell würde ich für QT Programmierung eher KDevelop verwenden (bei SUSE 9.1 als Version 3.0.2 dabei), ist meiner Meinung nach sehr ausgereift und absolut konkurrenzfähig. Automake ist hier dann für die Makefiles zuständig. Sonstige QT Sonderheiten und Vorteile sind hier auch gut eingebunden.
 
Oben