Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Gewichtung / Reihenfole der Optionen für dcc32.exe (https://www.delphipraxis.net/28098-gewichtung-reihenfole-der-optionen-fuer-dcc32-exe.html)

MaBuSE 1. Feb 2007 09:55

Re: Gewichtung / Reihenfole der Optionen für dcc32.exe
 
Zitat:

Zitat von MaBuSE
Warum?
Es gibt eine -NB Option. Deshalb wird -NB:\dir nicht als -N interpretiert.
Die -N0 Option ist ein Synonym für -N (= gleiche Funktion) und war schon in Delphi 4 vorhanden.
Folgende undokumentierte -N schalter gibt es:

Ach ja, in D2006 ist der -N0 und die Anderen -Nx endlich dokumentiert ;-)

Code:
Borland Delphi für Win32 Compiler-Version 18.0
2005 Borland Software Corporation

Syntax: dcc32 [optionen] dateiname [optionen]

  -A<unit>=<alias> = Unit-Alias setzen
  -B = Alle Units erzeugen
  -CC = Ziel: Konsole
  -CG = Ziel: GUI
  -D<syms> = Bedingungen definieren
  -E<path> = EXE/DLL-Ausgabeverzeichnis
  -F<offset> = Fehlersuche
  -GD = Detaillierte Map-Datei
  -GP = Map-Datei mit publics
  -GS = Map-Datei mit Segmenten
  -H = Ausgabe von Hinweismeldungen
  -I<paths> = Include-Verzeichnisse
  -J = .obj-Dateien generieren
  -JPHNE = C++ .obj-Datei, .hpp-Datei, im Namespace erzeugen, alles exportieren
  -K<addr> = Image-Basisadresse
  -LE<path> = Package .bpl-Ausgabeverzeichnis
  -LN<path> = Package .dcp-Ausgabeverzeichnis
  -LU<package> = Package verwenden
  -M = Modifizierte Units erzeugen
[b] -N0<path> = Unit .dcu-Ausgabeverzeichnis
  -NH<path> = Unit .hpp-Ausgabeverzeichnis
  -NO<path> = Unit .obj-Ausgabeverzeichnis
  -NB<path> = Unit .bpi-Ausgabeverzeichnis
  -NS<namespaces> = Namespace-Suchpfad[/b]
  -O<paths> = Objektverzeichnisse
  -P = Auch nach 8.3-Dateinamen suchen
  -Q = Ohne Meldung compilieren (Quiet)
  -R<paths> = Ressourcenverzeichnisse
  -U<paths> = Unit-Verzeichnisse
  -V = Debug-Information in EXE
  -VR = Externe Fehlersuche gen.
  -W[+|-][warn_id] = Ausgabe von Warnmeldungen
  -Z = Ausgabe nie zu erstellender DCPs
  -$<dir> = Compiler-Direktive
  --help = Diesen Hilfebildschirm anzeigen
  --version = Name und Version anzeigen
  --codepage:<cp> = Codierung für Quelltextdatei festlegen
  --default-namespace:<namespace> = Namespace setzen
  --depends = Unit-Abhängigkeitsinformationen ausgeben
  --doc = XML-Ausgabedokumentation
  --drc = Ausgaberessourcen-String .drc-Datei
  --no-config = Standard-DCC32.CFG-Datei nicht laden
Compiler-Schalter: $<buchst><status> (Vorgabewerte siehe unten)
  A8  Ausgerichtete Record-Felder
  B-  Vollst. boolesche Auswertung
  C+  Zur Laufzeit Bedingungen auswerten
  D+  Debug-Information
  G+  Importierte Datenreferenzen verw.
  H+  Standardmäßig lange Strings verw.
  I+  Ein-/Ausgabeprüfung
  J-  Strukt. Consts (Schreibzugriff)
  L+  Lokale Debug-Symbole
  M-  Laufzeit-Typinfo (RTTI)
  O+  Optimierung
  P+  Offene String-Parameter
  Q-  Integer-Überlaufprüfung
  R-  Bereichsüberprüfung
  T-  Typisierter @-Operator
  U-  Pentium(tm)-sichere Division
  V+  Strenge Prüfung von var-Strings
  W-  Stack-Frames erzeugen
  X+  Erweiterte Syntax
  Y+  Symbolinformation
  Z1  Mindestgröße für Enum-Typen

OldGrumpy 11. Sep 2008 10:56

Re: Gewichtung / Reihenfole der Optionen für dcc32.exe
 
Auch wenns schon älter ist - offene Frage ist offene Frage. Ich hab dazu in dem Artikel hier folgende Abfolge gefunden, wobei gesagt wird, dass es in Newsgroups dokumentiert sei (bei Gelegenheit mal bei google groups in den alten borland.* Gruppen suchen?)...

Zitat:

When Delphi performs a compilation from the command-line using dcc32.exe it gets more complicated.
  • The compiler options are first set to default values (you can see what these are by typing dcc32 with no arguments).
  • Then these settings are overridden by any settings in the file dcc32.cfg in the Delphi executable folder, if the file exists. Then these settings are overridden by any settings in the file dcc32.cfg in your project folder, if that file exists.
  • Then these settings are overridden by the settings in <Project Name>.cfg in your project folder, if that file exists (which it will if you have used the IDE to compile your project).
  • Then the settings are overridden by any command-line switches.
  • Finally, the compiler options can then be modified by directives within your source.


MaBuSE 11. Sep 2008 12:29

Re: Gewichtung / Reihenfole der Optionen für dcc32.exe
 
Zitat:

Zitat von OldGrumpy
Auch wenns schon älter ist - offene Frage ist offene Frage. Ich hab dazu in dem Artikel hier folgende Abfolge gefunden, wobei gesagt wird, dass es in Newsgroups dokumentiert sei (bei Gelegenheit mal bei google groups in den alten borland.* Gruppen suchen?)...

Die Frage ist immer noch offen, da ich immer noch keine "richtige" Antwort erhalten habe.
Was Du schreibst ist leider nicht ganz richtig, wie ich oben ja schon geschrieben habe.
Die Gewichtung der Parameter ist unterschiedlich.

Zitat:

When Delphi performs a compilation from the command-line using dcc32.exe it gets more complicated.
  • 0: The compiler options are first set to default values (you can see what these are by typing dcc32 with no arguments).
  • 1, 2: Then these settings are overridden by any settings in the file dcc32.cfg in the Delphi executable folder, if the file exists. Then these settings are overridden by any settings in the file dcc32.cfg in your project folder, if that file exists.
  • 3: Then these settings are overridden by the settings in <Project Name>.cfg in your project folder, if that file exists (which it will if you have used the IDE to compile your project).
  • 4: Then the settings are overridden by any command-line switches.
  • 5: Finally, the compiler options can then be modified by directives within your source.

Ich schrieb oben:
Zitat:

Zitat von MaBuSE
...
1. $(DELPHI)\bin\dcc32.cfg
2. LW:\Projektverzeichnis\dcc32.cfg
3. LW:\Projektverzeichnis\Projektname.cfg
4. Parameter die direkt an dcc32.exe übergeben werden
...

und einen Beitrag weiter unten:
Zitat:

Zitat von MaBuSE
Leider nicht !!!
Parameter "-N" Reihenfolge: 1. 2. 3. 4.
Parameter "-LN" Reihenfolge: 1. 3. 2. 4.
(letzteres ist das stärkere / wirksame)

Mach Dir eine dcc32.cfg, eine dcc32.cfg in dem Projektverzeichnis, eine Projekt.cfg und gib noch was in der Commandozeile an.
Du wirst feststellen, das für -N Deine Behauptung stimmt, aber für -LN eine andere Reihenfolge benutzt wird.

Wir haben das Problem gelöst indem wir die Dateien aus 1, 2 und 3 gelöscht haben und alle Parameter dem DCC32 als Komandozeile übergeben.
(wie es übrigens in D2007 via msbuild auch gemacht wird)

Ob das Problem bei der aktuellen Delphi Version noch besteht weiß ich nicht.

Ich werde die offene Frage als beantwortet markieren, obwohl sie nicht beantwortet ist, da sie für mich nicht mehr relevant ist ;-)
Es handelt sich um einen Bug in Delphi der auch von mir Borland gemeldet wurde.

Aber danke für die Antwort :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:54 Uhr.
Seite 2 von 2     12   

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