Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   dcc32 erzeugt keine Units per batch (https://www.delphipraxis.net/215480-dcc32-erzeugt-keine-units-per-batch.html)

user69 12. Jul 2024 09:52

dcc32 erzeugt keine Units per batch
 
Wenn ich die DCC32.exe per batch für die Erstellung einer Komponente verwende (dpk => bpl) werden keine Units erzeugt. Delphi 10.4
Wie kann ich auch die dcu units erzeugen?

Dies ist meiner x.cfg
Code:
-D"RELEASE"
-B
-Z
-U"d:\__TestSpace\___Coding\DPKs\2023.2.5\Lib\Win32"
-O"d:\__TestSpace\___Coding\DPKs\2023.2.5\Lib\Win32"
-I"d:\__TestSpace\___Coding\DPKs\2023.2.5\Lib\Win32"
-R"d:\__TestSpace\___Coding\DPKs\2023.2.5\Lib\Win32"
-LE"d:\__TestSpace\___Coding\DPKs\2023.2.5\Lib\Win32" -LN"d:\__TestSpace\___Coding\DPKs\2023.2.5\Lib\Win32" -NU"d:\__TestSpace\___Coding\DPKs\2023.2.5\Lib\Win32" -N0"d:\__TestSpace\___Coding\DPKs\2023.2.5\Lib\Win32"
-NSSystem;Xml;Data;Datasnap;Web;Soap;Winapi;System.Win;Data.Win;Web.Win;Soap.Win;Bde;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;VCLTee;
-V
-VN
-VT
-VR
-RV
-GD
-$YD-$D+
-$L+
-$O+
-$W-
-$Y+
-$Q-
-$R-
-H+
-W+

Uwe Raabe 12. Jul 2024 10:08

AW: dcc32 erzeugt keine Units per batch
 
Die cfg-Datei sollte nur einen Paramater pro Zeile haben. Das ist bei der gezeigten Datei aber in zwei Zeilen nicht der Fall:

Code:
...
-LE"d:\__TestSpace\___Coding\DPKs\2023.2.5\Lib\Win32" -LN"d:\__TestSpace\___Coding\DPKs\2023.2.5\Lib\Win32" -NU"d:\__TestSpace\___Coding\DPKs\2023.2.5\Lib\Win32" -N0"d:\__TestSpace\___Coding\DPKs\2023.2.5\Lib\Win32"
...
-$YD-$D+
...

user69 12. Jul 2024 10:25

AW: dcc32 erzeugt keine Units per batch
 
Ok, das habe ich behoben. Es ändert aber leider nichts an der Tatsache, dass mir die DCUs noch fehlen.

Code:
-D"RELEASE"
-B
-Z
-U"d:\__TestSpace\___Coding\DPKs\2023.2.5\Lib\Win32"
-O"d:\__TestSpace\___Coding\DPKs\2023.2.5\Lib\Win32"
-I"d:\__TestSpace\___Coding\DPKs\2023.2.5\Lib\Win32"
-R"d:\__TestSpace\___Coding\DPKs\2023.2.5\Lib\Win32"
-LE"d:\__TestSpace\___Coding\DPKs\2023.2.5\Lib\Win32"
-LN"d:\__TestSpace\___Coding\DPKs\2023.2.5\Lib\Win32"
-NU"d:\__TestSpace\___Coding\DPKs\2023.2.5\Lib\Win32"
-N0"d:\__TestSpace\___Coding\DPKs\2023.2.5\Lib\Win32"
-NSSystem;Xml;Data;Datasnap;Web;Soap;Winapi;System.Win;Data.Win;Web.Win;Soap.Win;Bde;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;VCLTee;
-V
-VN
-VT
-VR
-RV
-GD
-$YD
-$D+
-$L+
-$O+
-$W-
-$Y+
-$Q-
-$R-
-H+
-W+

Uwe Raabe 12. Jul 2024 10:37

AW: dcc32 erzeugt keine Units per batch
 
Sollte das -N0 nicht ein -NO sein?
Protokolliere doch mal die Konsolen-Ausgaben beim Batch-Aufruf in eine Datei.

jaenicke 12. Jul 2024 10:39

AW: dcc32 erzeugt keine Units per batch
 
Du schreibst, dass es um Delphi 10.4 geht. Warum verwendest du nicht einfach msbuild?

himitsu 12. Jul 2024 10:40

AW: dcc32 erzeugt keine Units per batch
 
Mach es dir einfach und nutze MSBuild.
Das verwendet dann die Einstellungen aus deinen Projektoptionen.
Code:
call "C:\Program Files (x86)\Embarcadero\Studio\21.0\bin\rsvars.bat"
msbuild "C:\Codes\deinProjekt.dproj"
bzw. unabhängig davon, was zuletzt im Projektmanager gewählt war, alles neu erzeugen, mit dem gewünschten Profil.
Code:
call "C:\Program Files (x86)\Embarcadero\Studio\21.0\bin\rsvars.bat"
msbuild /p:Config=Release /p:Platform=Win32 /t:Build "C:\Codes\deinProjekt.dproj"

Und natürlich lassen sich auch viele andere Optionen notfalls überschreiben.
Dafür einfach mal in die DPROJ schauen, also in den <PropertyGroup> die untergeordneten Werte, als Property /p:name=wert.
Code:
call "C:\Program Files (x86)\Embarcadero\Studio\21.0\bin\rsvars.bat"
msbuild /p:Config=Release /p:Platform=Win32 /t:Build /p:DCC_ExeOutput="C:\Codes\Ausgabe" "C:\Codes\Projekt1\deinProjekt.dproj"
Geht natürlich auch mit relativen Pfaden.
Code:
cd /d "C:\Codes"
call "C:\Program Files (x86)\Embarcadero\Studio\21.0\bin\rsvars.bat"
msbuild /p:Config=Release /p:Platform=Win32 /t:Build /p:DCC_ExeOutput=.\Ausgabe .\Projekt1\deinProjekt.dproj
Code:
cd /d "C:\Codes\Projekt1"
call "C:\Program Files (x86)\Embarcadero\Studio\21.0\bin\rsvars.bat"
msbuild /p:Config=Release /p:Platform=Win32 /t:Build /p:DCC_ExeOutput=..\Ausgabe deinProjekt.dproj

user69 12. Jul 2024 10:59

AW: dcc32 erzeugt keine Units per batch
 
Ich nutze dies um die FastReport dpks zu kompilieren. Projects existieren da nicht, also fällt wohl msbuild weg.
Dazu hab ich die DevExpressCompiler.dpr von himitsu modifiziert.
Grundlegend klappt das auch, ich bekomm nur niemals die DCU Datei. Alles andere ist ok.

N0 habe ich mal in NO geändert, aber das bewirkt nichts. (N0 war wohl früher mal der switch für das DCU Verzeichnis).

Auch auch unter user/public/Emba... finde ich die DCUs nicht. Auch nicht unter aktuellem user.

Hier die Consolen Ausgabe (wo das Menus\bpl\ herkommt weiß ich gar nicht):
Der Befehl "Menus\bpl\" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.
Embarcadero Delphi for Win32 compiler version 34.0
Copyright (c) 1983,2021 Embarcadero Technologies, Inc.
48 Zeilen, 0.19 Sekunden, 10624 Byte-Code, 208 Byte-Daten.
EXITCODE: 0

himitsu 12. Jul 2024 11:19

AW: dcc32 erzeugt keine Units per batch
 
Im FinalBuilder gibt es auch eine Delphi-Action.

Die nutzen wir aktuell nur noch für Fremdkomponenten.
Die eigenen Projekte sind auf die MSBuild-Action umgestellt.

Wobei ich irgendwann diese Acitions gern ersetzen und durch Scriptaufrufe (manuell den DCC und MSBuild ausgerührt) umstellen wöllte, da man für neue Delphi-Versionen immer erst auf VSoft warten und dann den neuen FinaBuilder kaufen muß, weil die Versionsauswahl im FB hart eingebaut ist.

Witzig ist aber, dass man mit DCC auch einzelne PAS zu DCU vorkompilieren kann und später für das Kompilieren von Projekten vorzubereiten.
Unser FinalBuilder kompiliert multithreaded mehrere Projekte und bei gemeinsamen Units knallt es gern, wenn es der selbe DCU-Ausgabepfad ist.




ABER, du kannst dir bei der Delphi-Action das "keep CFG" aktivieren,
dann löschte der seine erzeugte .CFG nicht, sondern benennts sie nur in .USED um
und schon kannst du dort abgucken, was der FinalBuilder sich baut.

Und wenn du im Delphi kompilierst, dann schau dir mal das Log an, also im Tab "Erzeugen" die "dcc32 Befehlszeile" aufklappen ... dort findest du auch die entsprechenden DCC-Parameter.
(ob via Parameter oder in CFG ist das Gleiche ... in CFG einfach nur ein Parameter je Zeile)


Wo kommt was her: siehe ProcessExplorer von SysInternals. (ich hatte auch mal ein Projekt angefangen, um mich ans HighPerformaneLog vom Windows zu hängen ... da bekommt man super alle Schreib und Lesezugriffe mit, welche ich dann schön übersichtlich zusammenfassen wollte, aber das hängt bissl ... wohingegen der ProcessExplorer hier einen FilterTreiber ins Windows prügelt)

jaenicke 12. Jul 2024 12:51

AW: dcc32 erzeugt keine Units per batch
 
Zitat:

Zitat von user69 (Beitrag 1538814)
Ich nutze dies um die FastReport dpks zu kompilieren. Projects existieren da nicht, also fällt wohl msbuild weg.

Dafür mmusst du die einfach einmal in Delphi öffnen, habe ich auch so gemacht...

user69 13. Jul 2024 14:33

AW: dcc32 erzeugt keine Units per batch
 
OK, das Problem ist gefunden. Nun funktioniert es super. DPLs, DCPs und DCUs werden alle neu erzeugt.

Echt dummer Fehler: Ich hatte keinen SearchPath für die Source files gesetzt. Dadurch wurden keine DCUs erzeugt (wie auch).
Die BPLs wurden dann trotzdem erzeugt, da die alten DCUs gefunden wurden.

MSBuild:
Das wäre mir zu aufwändig erst alle Projects zu erzeugen (und dann zu sortieren), zumal es auch ohne problemlos geht.

Nun muss ich "nur" noch die Komponenten automatisch installieren und Pfade setzen.

Kann mir da noch jemand eine Tip geben wie das richtig geht?
Für die Komponenten installieren kann ich das wohl in der Registry unter [HKEY_CURRENT_USER\Software\Embarcadero\BDS\21.0\Kn own Packages]
einfach machen:
"C:\\Program Files (x86)\\Fast Reports\\2023.2.5\\Sources\\LibRS27\\VCL\\Win32\\d clfrCoreLibrary27.bpl"="FastCore VCL Library by Fast Reports Inc"

Wo genau setzte ich aber dann die Suchpfade?


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:57 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz