given_to_fly Geschrieben 12. Oktober 2003 Teilen Geschrieben 12. Oktober 2003 Hallo. Ich bräuchte mal eine kleine Erklärung zu den beiden "Programmen". Ich glaube jeder hat diese schonmal benutzt um so sein gewünschtes Programm zu übersetzten . Doch was machen diese einzelnen eigentlich ? mit configure kann ich die Pfade etc.. anpassen ... Dann prüft er ab ob ich gewisse Programme installiert hab, jedoch was macht er noch ? Erstellt er das Makefile ? Und warum muss er ein makefile erstellen bzw. was macht make eigentl. ? Er kompiliert die einzelen c dateien zusammen, aber wieso macht man dann nicht ein file das die ganzen compilierungszeilen erhält ? Warum dann denn configure? Und warum muss ich manchmal überhaupt kein configure machen, sondern reicht einfach ein make irgendwas.... Und wenn ich ein Programm geschrieben habe gibt es ein programm das mir das configure file erstellt oder muss ich das per hand erstellen ? Hoffe ihr könnt mich einmal aufklären, vielen Dank! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DanielB Geschrieben 12. Oktober 2003 Teilen Geschrieben 12. Oktober 2003 mit configure kann ich die Pfade etc.. anpassen ... Ja, Pfade anpassen, Funktionen ein- bzw. ausschalten, etc. Dann prüft er ab ob ich gewisse Programme installiert hab, jedoch was macht er noch ? Configure prüft nicht nur, ob bestimmte Programme und Bibliotheken installiert sind, sondern z.B. auch welche Ergebnisse Funktionen aus der C Bibliothek zurückliefern, welche Parameter zum Aufruf solcher Funktionen nötig sind, etc. Erstellt er das Makefile ? Ja. Und warum muss er ein makefile erstellen bzw. was macht make eigentl. ? Ein Makefile benötigst Du, damit make überhaupt arbeiten kann. make liesst das von configure erstellte Makefile aus und arbeitet es entsprechend ab, indem es z.B. Code kompiliert,die resultierenden Objektdateien linkt, oder Programmdateien installiert. Er kompiliert die einzelen c dateien zusammen, aber wieso macht man dann nicht ein file das die ganzen compilierungszeilen erhält ?Warum dann denn configure? Das ist nötig um den Üersetzungsvorgang von Programmen portabel zu halten, den Aufwand für die Programmierer einen Weg zu finden ihre Programme zu verteilen zu minimieren und eine Möglichkeit für den Benutzer der Programme zu bieten diese relativ leicht zu übersetzen, ohne vorher tief in den Makefile Änderungen vorzunehmen. Wenn Du ein selbstgeschriebenes statisches Makefile verwendest musst Du bestimmte Annahmen über das System machen, auf dem der Makevorgang ausgeführt wird. Wie Du Dir sicher vorstellen kannst, kommt dies über kurz oder lang zu Problemen, wenn z.B. Bibliotheken oder Pfade verwendet werden, die auf dem Zielsystem nicht vorhanden sind, etc. Und warum muss ich manchmal überhaupt kein configure machen, sondern reicht einfach ein make irgendwas.... Weil nicht alle Programme auf den GNU Autotools basieren und damit kein configure exitiert. Und wenn ich ein Programm geschrieben habe gibt es ein programm das mir das configure file erstellt oder muss ich das per hand erstellen ? Ja, die gibt es. Das ganze besteht aus mehren Programmen, z.B. Autoconf, Automake, Autoheader. Diese Programme sind Teil des GNU Projektes und als GNU Autotools bekannt. Hoffe ihr könnt mich einmal aufklären, vielen Dank! HTH Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
given_to_fly Geschrieben 12. Oktober 2003 Autor Teilen Geschrieben 12. Oktober 2003 Hi erstmal vielen Dank für die ausführliche antwort. Aber eine frage noch: manchma heisst es : make install manchmal make configure make menuconfig etc.... worin besteht da der unterschied ? oder heisst das erzeugte configure file dann z.B. install oder menuconfig. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DanielB Geschrieben 12. Oktober 2003 Teilen Geschrieben 12. Oktober 2003 Hi, das liegt daran, dass innerhalb der Makefiles verschiedene Funktionen existieren können, die diverse Aktionen durchführen können. Z.B. Könnte eine Funktion existieren, die das Programm installiert (make install). Eine weitere Funktion innerhalb des Makefiles könnte die Dateien deinstallieren (make uninstall), eine weitere die Objektdateien löschen (make clean), etc. Am Besten schaust Du dir mal ein Makefile eines kleineren Programmes durch, diese sind i.d.R. noch relativ übersichtlich. Mit configure und Dateinamen hat das nichts zu tun. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
given_to_fly Geschrieben 12. Oktober 2003 Autor Teilen Geschrieben 12. Oktober 2003 Original geschrieben von DanielB Hi, das liegt daran, dass innerhalb der Makefiles verschiedene Funktionen existieren können, die diverse Aktionen durchführen können. Z.B. Könnte eine Funktion existieren, die das Programm installiert (make install). Eine weitere Funktion innerhalb des Makefiles könnte die Dateien deinstallieren (make uninstall), eine weitere die Objektdateien löschen (make clean), etc. Am Besten schaust Du dir mal ein Makefile eines kleineren Programmes durch, diese sind i.d.R. noch relativ übersichtlich. Mit configure und Dateinamen hat das nichts zu tun. Ahh jetzt Ich hab es am beispiel von PsyBnc nachvollzogen .... Nu hab ichs gerallt, vielen Dank! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.