Mit den Compilern werden die für Menschen lesbaren Quellcode Dateien in maschinenlesbaren Objektcode übersetzt. Da aber ein Programm in der Regel aus mehreren Quellcodedateien zusammengebaut wird, kann das Erstellen des Programms von Hand eine ziemlich langwierige und fehleranfällige Arbeit werden. Um diesen Prozess zu automatisieren und zu unterstützen, werden Buildsysteme eingesetzt. Diese beiden Programmgruppen werden in diesem Wiki-Artikel zusammengestellt. = Compiler = Die Pakete, die die jeweiligen Compiler enthalten, werden in der folgenden Liste in Klammern '''fett''' angegeben: * [:GCC: Die GNU Compiler Collection] - Compiler für Ada ('''gnat'''), C ('''gcc'''), C++ ('''g++'''), D ('''gdc'''), ObjectiveC ('''gobjc'''), Eiffel ('''smarteiffel'''), Fortran ('''gfortran'''), Java ('''gcj'''), Lisp ('''gcl'''), Pascal ('''gpc''') und Prolog ('''gprolog''') * [:distcc:] - auf mehreren Rechner parallel Kompilieren * [:Icecream:] - eine Alternative zu distcc * [:ICC:] - der Intel C++ Compiler * '''Glasgow Haskell Compiler''' - Compiler für die funktionale Programmiersprache Haskell ('''ghc''') * '''iconc''' Ein Compiler für [http://www.cs.arizona.edu/icon/index.htm Icon] {en} * [:Ifort: Intel Fortran Compiler] - Installation des Intel Fortran Compilers unter Ubuntu * [:Java: Java installieren] * [:GNU_ARM-Toolchain:] - Cross-Compiler und Debugger für ARM-Mikrocontroller = Buildsysteme = Eine ganz gute Übersicht über existierende Buildsysteme gibt es unter [http://www.a-a-p.org/tools_build.html http://www.a-a-p.org/tools_build.html] {en} . * '''aap''' Verwendet Signaturen, um Probleme mit Zeitstempeln zu beheben. Unterstützt Python Skripte, zur Beschreibung des Build-Prozesses. * '''autoconf''' Das configure Tool, zur Erzeugung automatischer Makefiles. * [:Makefile: Make] Das traditionelle Buildsystem. * '''cmake''' [http://www.cmake.org/HTML/index.html Cross-platform Make] {en} * '''scons''' Ein Ersatz für make, das eine Reihe von erweiterten Möglichkeiten, wie automatische Abhängigkeitsgenerierung, bereitstellt. Das System baut auf Python auf, so dass die gesamte Mächtigkeit Pythons zur Kontrolle des Compilation-Prozesses zur Verfügung gestellt wird. = Hilfreiche Tools = * '''acovea''' Analyse der Compileroptionen mit Hilfe evolutionärer Optimierungsalgorithmen. * [http://taschenorakel.de/mathias/bulldozer/ Bulldozer] {en} Integration des Buildprozesses in Nautilus. * '''ccache''' Cache für Compilerresultate, um das erneute Kompilieren zu beschleunigen. * '''cmix''' Ein Tool, das versucht gegebenen C Code auf Geschwindigkeit zur Laufzeit hin zu beschleunigen. * '''distcc''' Verteilt den Buildprozess auf verschiedene Computer um Zeit beim Kompilieren sparen. * '''qmtest''' Ein Test Framework zum Qualitätsmanagement von [http://www.codesourcery.com/qmtest/ CodeSourcery] {en} ---- # tag: Programmierung, Übersicht