AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi-Compiler

Ein Thema von egal · begonnen am 10. Sep 2004 · letzter Beitrag vom 13. Sep 2004
Antwort Antwort
Seite 3 von 4     123 4      
egal

Registriert seit: 14. Jul 2004
189 Beiträge
 
Delphi 2006 Professional
 
#21

Re: Delphi-Compiler

  Alt 10. Sep 2004, 11:57
Zitat von Florian H:
wenn dir das fenster zu schnell zu geht, kannst du auch erstmal die DOS-Box öffnen (über Start-Ausführen "cmd" ; bei WinXP) und dort das dann eintppen!
Danke, jetzt kann ich wenigstens prüfen, ob es überhaupt richtig läuft.
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 
#22

Re: Delphi-Compiler

  Alt 10. Sep 2004, 13:37
Zitat von egal:
Zitat von Florian H:
wenn dir das fenster zu schnell zu geht, kannst du auch erstmal die DOS-Box öffnen (über Start-Ausführen "cmd" ; bei WinXP) und dort das dann eintppen!
Danke, jetzt kann ich wenigstens prüfen, ob es überhaupt richtig läuft.
Ein paar Tipps (eine kleine Anleitung) zum Kommandozeilen Compiler von Delphi

1. Erstelle ein kleines Demoprojekt (Delphi starten -> neues Projekt -> einen TButton aufs Formular -> Close; zuweisen und speichern in c:\temp\test\)
2. Drücke F9 zum Starten in der IDE -> Programm wird kompiliert und gestartet
3. Programm und Delphi beenden
4. Shell öffnen (Dos Box / Eingabeaufforderung)
5. In Verzeichnis c:\temp\test wechseln
Code:
cd /d c:\Temp\Test
6. Den Kommandozeilen Compiler aufrufen
Code:
dcc32 Project1
7. Es wird die Datei Project1.dpr kompiliert und ein project1.exe erstellt.
Code:
C:\TEMP\Test>dcc32 Project1
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
Unit1.pas(32)
Project1.dpr(14)
48 lines, 0.36 seconds, 314324 bytes code, 7429 bytes data.
Ok, so weit so gut.

In Deinem Verzeichnis sollten folgende Dateien vorhanden sein:
Code:
C:\TEMP\Test>dir
 Volume in Laufwerk C: hat keine Bezeichnung.
 Volumeseriennummer: ACAF-C564

 Verzeichnis von C:\TEMP\Test

10.09.2004  14:15    <DIR>         .
10.09.2004  14:15    <DIR>         ..
10.09.2004  14:15               426 Project1.cfg
10.09.2004  14:15             2.912 Project1.dof
10.09.2004  14:12               188 Project1.dpr
10.09.2004  14:15           374.784 Project1.exe
10.09.2004  14:15               876 Project1.res
10.09.2004  14:15             3.651 Unit1.dcu
10.09.2004  14:11               495 Unit1.dfm
10.09.2004  14:12               465 Unit1.pas
               8 Datei(en)       383.797 Bytes
               2 Verzeichnis(se), 15.032.627.712 Bytes frei
Project1.dpr: der Projektquelltext (hier wird Unit1 mit Form1 aufgerufen)
Unit1.pas: der Quelltext des Hauptformulars Form1
Unit1.dfm: hier sind die visuell festgelegten Eigenschaften abgespeichert (alles was man im Objektinspektor sehen kann)

Wenn nur diese 3 Dateien vorhanden sind, kann man schon kompilieren!

Project1.res: Resourcendatei wird von der IDE automatisch erstellt. (Hier ist. z.B. das Icon der Exe enthalten)
Project1.dof: DOF = Delphi Option File -> hier speichert die Delphi IDE die Optionen ab
Project1.cfg: Hier werden die Optionen für den Compiler abgespeichert. Die IDE erzeugt diese Datei beim Kompilieren.

Die *.cfg Datei ist sehr nützlich!
Wenn zu einem Projekt eine cfg-Datei existiert, dann übernimmt DCC32.EXE automatisch die Optionen aus der Datei. (Mann kann also alle Einstellungen in der IDE vornehmen, und muss sie nicht als Parameter an DCC32 übergeben) Diese Datei ist eine Textdatei und kann editiert werden. z.B.
Code:
notepad Project1.cfg
Wenn keine *.cfg Datei vorhanden ist kann es passieren, das dcc32.exe folgende Fehlermeldung bringt:
Code:
C:\TEMP\Test>dcc32 Project1
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
Project1.dpr(1) Fatal: Unit not found: 'System.pas' or binary equivalents (DCU,DPU)
Dann muß man den Suchpfad manuell als Parameter übergeben:
Code:
C:\TEMP\Test>dcc32 -UC:\Programme\Borland\Delphi7\Lib project1
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
Unit1.pas(32)
Project1.dpr(14)
48 lines, 0.34 seconds, 314324 bytes code, 7429 bytes data.
oder in die *.cfg folgende Zeile einfügen:
Code:
-UC:\Programme\Borland\Delphi7\Lib
Unit1.dcu: Die kompilierte Unit (unit1.pas + unit1.dfm)
Project1.exe: Das kompilierte ausführbare Programm

Ruf mal dcc32 ohne Parameter auf, dann siehst Du eine Liste der möglichen Parameter:
Code:
C:\TEMP>dcc32
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation

Syntax: dcc32 [options] filename [options]

  -A<unit>=<alias> = Set unit alias -LU<package> = Use package
  -B = Build all units              -M = Make modified units
  -CC = Console target              -N<path> = DCU output directory
  -CG = GUI target                  -O<paths> = Object directories
  -D<syms> = Define conditionals    -P = look for 8.3 file names also
  -E<path> = EXE output directory   -Q = Quiet compile
  -F<offset> = Find error           -R<paths> = Resource directories
  -GD = Detailed map file           -U<paths> = Unit directories
  -GP = Map file with publics       -V = Debug information in EXE
  -GS = Map file with segments      -VR = Generate remote debug (RSM)
  -H = Output hint messages         -W = Output warning messages
  -I<paths> = Include directories   -Z = Output 'never build' DCPs
  -J = Generate .obj file           -$<dir> = Compiler directive
  -JP = Generate C++ .obj file      --help = Show this help screen
  -K<addr> = Set image base addr    --version = Show name and version
Compiler switches: -$<letter><state> (defaults are shown below)
  A8  Aligned record fields          P+  Open string params
  B-  Full boolean Evaluation        Q-  Integer overflow checking
  C+  Evaluate assertions at runtime R-  Range checking
  D+  Debug information              T-  Typed @ operator
  G+  Use imported data references   U-  Pentium(tm)-safe divide
  H+  Use long strings by default    V+  Strict var-strings
  I+  I/O checking                   W-  Generate stack frames
  J-  Writeable structured consts    X+  Extended syntax
  L+  Local debug symbols            Y+  Symbol reference info
  M-  Runtime type info              Z1  Minimum size of enum types
  O+  Optimization

C:\TEMP>
So ich hoffe ich habe Dir hiermit eine kleine Anleitung geben können.
Prinzipiell kann man mit dem dcc32 alles kompilieren, was auch die Delphi IDE kann.
Wenn Dein Project1.dpr eine DLL erstellt, dann wird dcc32 auch eine DLL erstellen.
DCC32.EXE kann auch mit Projektgruppen umgehen, und so viele Programme nacheinander kompilieren.
Dazu muß man wissen, das Projektgruppen eigentlich nur makefiles sind. Ein Aufruf von
Code:
make ProjectGroup1.bpg
ruft nacheinander für jedes enthaltene Projekt dcc32 auf und kompiliert es.
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
egal

Registriert seit: 14. Jul 2004
189 Beiträge
 
Delphi 2006 Professional
 
#23

Re: Delphi-Compiler

  Alt 10. Sep 2004, 14:04
to MaBuSe:
Danke für so eine ausführliche Hilfe!!!
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 
#24

Re: Delphi-Compiler

  Alt 10. Sep 2004, 14:56
Zitat von egal:
to MaBuSe:
Danke für so eine ausführliche Hilfe!!!
Bitte gern geschehen.
Ich habe den Text auch noch mal zu den Tutorials gepostet.
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#25

Re: Delphi-Compiler

  Alt 10. Sep 2004, 15:43
Mach eine Batch-Datei:
Code:
dcc32 MeineUnit.pas
pause
Dann sollte sich das Fenster erst nach tastendruck schließen und du kannst die Ausgaben noch lesen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#26

Re: Delphi-Compiler

  Alt 10. Sep 2004, 15:50
Zitat von Luckie:
Code:
dcc32 MeineUnit.pas
pause
Oder
Code:
@echo off
%comspec% /K dcc32 Foo.dpr
exit
Dann bleibt die Shell gleich offen (bereit um sie wegzuklicken oder etwas anderes einzutippen).
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#27

Re: Delphi-Compiler

  Alt 10. Sep 2004, 19:47
Hi,

jetzt sind ja einige, die wissen was es mit DCC32.EXE auf sich hat aufgetaucht. 8) Es gibt nämlich noch eine zumindest von mir nicht zu 100% geklärte Frage :

Ist in DCC32 alles genau so, wie in der IDE ? Ich glaube Nico hat mal gesagt, es wäre nicht dasselbe. Schätze mal, diese Frage muß zu Borland, aber vielleicht weiß einer trotzdem genaueres.
Gruß
Hansa
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#28

Re: Delphi-Compiler

  Alt 11. Sep 2004, 05:34
Ich empfehle die JVCL (http://jvcl.sf.net/daily und http://jcl.sf.net/daily).
Der Installer wird selbst von einem Batchfile uebersetzt und benutzt dann den Delphi-Compiler
um die JVCL zu uebersetzen. Inklusive aufbereiteter Ausgabe der Meldungen.
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 
#29

Re: Delphi-Compiler

  Alt 13. Sep 2004, 09:14
Zitat von Hansa:
Ist in DCC32 alles genau so, wie in der IDE ? Ich glaube Nico hat mal gesagt, es wäre nicht dasselbe. Schätze mal, diese Frage muß zu Borland, aber vielleicht weiß einer trotzdem genaueres.
Leider Nein, es ist nicht dasselbe.

Die IDE ruft den Compiler aus der DCC32.DLL auf. Diese benötigt nicht die DCC32.EXE. Ist also ein eigenständiger Compiler.

Das Verhalten ist leider auch nicht dasselbe.
  • Die IDE verwendet die Compiler Einstellungen aus den *.dof Dateien (Delphi Option File),
    der DCC32.EXE die aus den *.cfg Dateien
    Die IDE erstellt automatisch *.cfg Dateien, die aber leider nicht die selben Optionen enthalten.
  • Die IDE verwenet beim kompilieren die allgemeinen Suchpfade (Menü -> Tools -> Umgebunsoptionen -> Bibiothek -> Bibiothekspfad) und die Pfade der Projektoptionen (Menü -> Projekt -> Optionen -> erzeichnisse/Bedingungen -> Suchpfad) als Parameter -U
    Beim Erzeugen der *.cfg Dateien wird aber nur der Projektbezogene Suchpfad abgespeichert.
    Es muß also immer noch der allgemeine Suchpfad ergänzt werden. (oder DCC32.EXE per -U übergeben werden)
  • Der DCC32.exe Compiler mischt leider die Parameter aus verschiedenen *.cfg Dateien zusammen.
    (siehe auch , Gewichtung und Reihenfolge der Optionen des DCC32.EXE)
  • Der DCC32.EXE Compiler hat auch Bugs die der Compiler der IDE nicht hat. (und sicher auch umgekehrt )
    (siehe auch , Bug bei -L und -LN Parameter des DCC32.EXE)
Es gibt noch einige andere Unterschiede, aber die habe ich jetzt nicht im Kopf

Ich hoffe diese Antwort hilft Dir weiter.

Viele Grüße an meine alte Heimat,
das Saarland
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#30

Re: Delphi-Compiler

  Alt 13. Sep 2004, 12:31
Also doch. Warum machen die nur so was ?

Und @Mabuse : Du tust ja so, als wärst Du nach Übersee ausgewandert. Dabei bist du gerade mal im Hinterhof gelandet.
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz