2009-12-03 4 views
13

Hat jemand jemals geschafft, Delphi 6 & 7 (kein Delphi> 7) Projekt über die Befehlszeile zu kompilieren?Wie kompiliere ich mein Delphi-Projekt in der Befehlszeile?

Alle Anweisungen, die ich sehe, sind nicht sehr klar, wohin genau wohin gehen!

Bin auf der Suche nach Schritt für Schritt Art von Anweisungen.

Die Antworten sollten auf Delphi 6 & 7 beschränkt sein, ich verstehe Delphi2006 und> verwendet MSBuild, was viel einfacher ist.

Links werden auch sehr geschätzt.

Gath

Antwort

14

Dies ist nicht schwer zu tun. Ich habe hier eine standardmäßige Delphi 5-Installation auf meinem Computer installiert. Wenn ich eine Eingabeaufforderung öffne, navigieren Sie zum Verzeichnis $(DELPHI)\Demos\Threads und geben Sie dcc32.exe thrddemo.dpr ein. Die Anwendung wird in der Befehlszeile erstellt.

Für Ihr eigenes Projekt müssen Sie möglicherweise einige Schalter hinzufügen, um Dateiverzeichnisse, Ausgabeverzeichnisse, Defines oder ähnliche Dinge einzuschließen. Wenn dcc32.exe ohne Parameter ausgeführt wird, wird eine Liste der Schalter und Parameter angezeigt. Es ist alles in der Dokumentation beschrieben.

Für die Wiederholbarkeit sollten Sie eine Batchdatei oder ein normales Makefile erstellen.

Beachten Sie, dass sowohl das Projekt cfg Datei und die gemeinsame dcc32.cfg im Delphi-Verzeichnis wichtige Einstellungen enthalten. Für einige Informationen darüber, wie sie den Build beeinflussen, siehe zum Beispiel this link on Delphi Wikia.

+3

Talking about das Delphi-Wiki: Es gibt auch eine Seite über genau dieses Thema: http://delphi.wikia.com/wiki/Compile_from_Commandline, die ich gerade erweitert habe. – dummzeuch

7

Für Build-Automatisierung verwende ich Apache Ant, die a software tool for automating software build processes ist. Ich verwende es für alle meine Projekte, von Delphi 6 bis Delphi 2009 und Free Pascal.

Dinge, die es tun kann "out of the box" gehören MD5 Prüfsummengenerierung, ZIP-Dateierstellung, Textsuche/ersetzen (nützlich für Copyright-Header-Generation), Ausführung von SQL-Anweisungen, XSLT-Verarbeitung.

Zum Beispiel alle Projekte mit Delphi zu kompilieren 6, das ist (ein Teil) das Skript:

<target name="compile_d6"> 
    <!-- Compile with Delphi 6 --> 
    <apply executable="${d6}\Bin\dcc32" failonerror="true" output="build-d6.log" > 
    <!-- rebuild quiet --> 
    <arg value="-B"/> 
    <arg value="-Q"/> 
    <!-- file paths --> 
    <arg value="-I${source};${indy10}/Lib/System"/> 
    <arg value="-O${source};${indy10}/D6;${jcl}/d6"/> 
    <arg value="-U${source};${indy10}/D6;${jcl}/d6"/> 
    <!-- all *.dpr files in current directory --> 
    <fileset dir="."> 
     <patternset><include name="*.dpr"/></patternset> 
    </fileset> 
    </apply> 
</target> 

Freie Open-Source-CI (Continuous Integration) Server wie Hudson/Jenkins Apache Ant unterstützt Build-Skripte out-of-the-box, dh Sie können das Projekt automatisch erstellen lassen, wenn Sie eine Änderung im Quell-Repository vornehmen.

+1

sieht gut aus ... bitte geben Sie mehr Erklärung – gath

+0

Meine Antwort enthält zwei Links auf die Projekt-Homepage und den Wikipedia-Artikel. Hast du eine spezifische Frage? – mjn

+1

Ja, das ist ein guter Weg. Ich habe etwas Ähnliches mit NAnt gemacht, welches ein .NET-Port von Ant ist. –

1

Ich würde vorschlagen, Kombination von NAnt und dcc32, aber es gibt auch Juancarlo Añez "WAnt - A Pascal-Friendly Build Tool". Ich habe eine modifizierte Version von 1.x anstelle von 2.x Alpha verwendet. Da es sich um Open Source handelt, könnte ich den Code so erweitern, dass XML im selben Format wie NAnt ausgegeben wird, sodass ich ihn in CruiseControl.NET integrieren kann.

+0

Ich benutze CruiseControl.NET mit NAnt. Was ist das Problem mit NAnt, also würden Sie stattdessen Want verwenden? – mghie

+0

Als ich anfing, Wunt zu benutzen, erschien mir die Out-of-the-Box-Unterstützung für das Erstellen eines Delphi-Projekts und das Ausführen des DUnit-Tests für mich attraktiver. Wie ich schon sagte, ich würde versuchen NAnt, wenn ich von Null anfangen würde. –

+0

Hoffe, wir bleiben immer noch bei Delphi 6 & 7 ... – gath

3

Sie alles, was mit dieser Befehlszeile bauen:

"C:\Program Files\Borland\Delphi7\Bin\DCC32.exe" -Q -B your-project.dpr 

Setzen Sie diese Zeile in einer BAT-Datei, so dass Sie es nicht geben immer müssen.Werfen Sie einen Blick auf die Optionen Befehlszeile folgendermaßen aus:

"C:\Program Files\Borland\Delphi7\Bin\DCC32.exe" -h 

BTW: -q Kompilierung ist und -B wird alles wieder aufzubauen. Wenn Sie eine schnellere Zusammenstellung wünschen, verwenden Sie nicht -B.

Es wird alle Optionen in Ihrer Datei your-project.cfg verwenden. Ich habe dieses dof2cfg executable sehr nützlich gefunden. Damit kann ich die .dof-Textdatei bearbeiten und die Änderung an die Befehlszeile und die IDE weitergeben. Keine Notwendigkeit, das für jedes Projekt zu öffnen.

Wichtige Warnung: Delphi 7 Befehlszeilencompiler hat einen sehr seltsamen Fehler. Wenn Ihr Pfad sehr lang ist, wird er mit einem unerklärlichen Fehler fehlschlagen: eine Zugriffsverletzung ohne sinnvolle Information. Wenn es ohne ein vernünftiges Motiv fehlschlägt, versuchen Sie, den vollständigen Pfad und die Größe des Dateinamens zu reduzieren.

:

+1

Ich habe gerade bdsproj2cfg geschrieben und in CodeCentral hochgeladen, was dasselbe auch für die von Delphi 2005 und 2006 verwendeten .bdsproj-Dateien tut. Nur für den Fall, dass jemand es braucht ... – dummzeuch

0

Für spätere Versionen von Delphi, sollte dies geändert werden "C: \ Program Files (x86) \ Embarcadero \ RAD Studio \ 8.0 \ bin \ DCC32.EXE" -h

Verwandte Themen