Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   Error beim kompilieren via Kommandozeile (https://www.delphipraxis.net/136204-error-beim-kompilieren-via-kommandozeile.html)

hs-y 25. Jun 2009 16:02


Error beim kompilieren via Kommandozeile
 
Hey Leute,

ich bekomme einen seltsamen Fehler beim kompilieren über die Kommandozeile:
Fatal: F2084 Internal Error: DEP396

Und ich habe keine Ahnung warum. Aus dem einzigen Google-Eintrag, den ich gefunden habe, bin ich nicht schlau geworden.

Ich hoffe, ihr könnt mir helfen.

Bernhard Geyer 25. Jun 2009 16:12

Re: Error beim kompilieren via Kommandozeile
 
Hast du älteres Delphi und Vista oder neuer? Die Commandozeilencompiler ältere Delphi-Versionen haben "Macken" da sie nicht DEP-Kompatible sind und je nach Quellcode "komisches" verhalten zeigen.

hs-y 26. Jun 2009 07:39

Re: Error beim kompilieren via Kommandozeile
 
Also ich nutze den Kommandozeilencompiler von Delphi 2006 (Version 18). Als System nutze ich Windows XP Professional.

hs-y 30. Jun 2009 10:47

Re: Error beim kompilieren via Kommandozeile
 
*push*

gsh 30. Jun 2009 11:44

Re: Error beim kompilieren via Kommandozeile
 
passiert das auch bei einem leeren Projekt?
Kannst du das richtige Projekt mit Delphi selber kompilieren?

hs-y 30. Jun 2009 12:25

Re: Error beim kompilieren via Kommandozeile
 
Ja ich kann das selbe Projekt mit Delphi richtig kompilieren.

Ebenso können andere Projekte via Kommandozeile fehlerfrei kompiliert werden.

gsh 30. Jun 2009 12:32

Re: Error beim kompilieren via Kommandozeile
 
Hat das Komandozeilen Tool Adminrechte? Wenn nein vielleicht mal testen ...
Nutzt du in dem Projekt irgendwelche fremdkomponenten? Wenn ja welche?

hs-y 30. Jun 2009 13:08

Re: Error beim kompilieren via Kommandozeile
 
adminrechte? was genau meinst du damit??? also ja es darf .dcus etc. anlegen.

Fremdkomponenten nein

Ich habe den Compiler samt Projekt sowie abhängigkeiten und Units auf einen anderen Rechner gezogen und jetzt hats funktioniert.

hs-y 1. Jul 2009 15:30

Re: Error beim kompilieren via Kommandozeile
 
so es ist wieder auf getreten bei einem anderen Projekt:

die Fremdkomponenten sind:
SynEdit
tplockbox

und adminrechte...kp was du meinst, aber ich glaube die hat es nicht!

EDIT: Ich kann das gleiche Projekt sobald es in einem anderen Ordner liegt kompilieren ohne einen Fehler.
EDIT2: Kompiliere ich das Projekt ohne den --depends Schalter so funktioniert es auch an dem Ort, wo es ohne nicht geht.

Muetze1 1. Jul 2009 15:38

Re: Error beim kompilieren via Kommandozeile
 
Wie lautet der originale Verzeichnisname und wie lautet der Ausgabeverzeichnisname und wie liegt dieser in Relation zu dem Basisverzeichnis des Projektes? Kannst du die .dproj (also die XML Projektdatei) mal anhängen?

Ist eine BDS Environmentvariable deklariert in der Konsole wo das build abläuft?

hs-y 1. Jul 2009 16:02

Re: Error beim kompilieren via Kommandozeile
 
Also in Delphi 2006 gibt es nur die .dpr-Dateien. Die .dproj wurden erst mit Delphi 2007 eingeführt.

Das Augabeverzeichnis ist das Standardausgabeverzeichnis.

Das Projektverzeichnis liegt auf demselben PC in dem selben Teil der Festplatte (C:\) in einem Unterordner, während das Ausgabeverzeichnis in C:\Programme\Borland\BDS\...

Ich starte über die Kommandozeile nutze also den Kommandozeilencompiler, der all das kann, was das BDS auch kann. Die Environmentvariablen werden im Projekt gespeichert und somit wird das Projekt genau so kompiliert, wie im BDS auch.

Muetze1 1. Jul 2009 16:46

Re: Error beim kompilieren via Kommandozeile
 
Zitat:

Zitat von hs-y
Also in Delphi 2006 gibt es nur die .dpr-Dateien. Die .dproj wurden erst mit Delphi 2007 eingeführt.

Scherzkeks - dann halt die .bdsproj Datei.

Zitat:

Zitat von hs-y
Das Augabeverzeichnis ist das Standardausgabeverzeichnis.

Das Projektverzeichnis liegt auf demselben PC in dem selben Teil der Festplatte (C:\) in einem Unterordner, während das Ausgabeverzeichnis in C:\Programme\Borland\BDS\...

Ich starte über die Kommandozeile nutze also den Kommandozeilencompiler, der all das kann, was das BDS auch kann. Die Environmentvariablen werden im Projekt gespeichert und somit wird das Projekt genau so kompiliert, wie im BDS auch.

Wenn du die detaillierten Fragen nicht auch detailliert beantworten willst, willst du anscheinend auch keine Hilfe. Aber dann frag bitte auch nicht!

hs-y 2. Jul 2009 07:46

Re: Error beim kompilieren via Kommandozeile
 
Na dann hier die .dpr:

Delphi-Quellcode:
program BigBrother;

uses
  //MWHeapChecker,
  Forms,
  BigBrotherF in 'BigBrotherF.pas' {BigBrotherForm},
  OsirisD in 'OsirisD.pas',
  OsirisC in 'OsirisC.pas',
  ApplicationD in 'ApplicationD.pas',
  ConfigF in 'ConfigF.pas' {ConfigForm},
  AppConfigD in 'AppConfigD.pas';

{$R *.RES}

begin
  Application.Initialize;
  Application.CreateForm(TBigBrotherForm, BigBrotherForm);
  Application.Run;
end.
Die .bdsproj wird beim kompilieren gar nicht verwendet (zumindest wenn man es, wie ich über die Kommandozeiele macht)

Verzeichnisname:
C:\perforce\user\depot\Tools\BigBrother

Ausgabeverzeichnis:
C:\Programme\Borland\BDS\4.0\Output

Muetze1 2. Jul 2009 10:23

Re: Error beim kompilieren via Kommandozeile
 
Zitat:

Zitat von hs-y
Die .bdsproj wird beim kompilieren gar nicht verwendet (zumindest wenn man es, wie ich über die Kommandozeiele macht)

Das bedeutet du rufst für jede .pas und abhängige Quelle deines Projektes per Hand den dcc auf?

Oder nutzt du das make Tool von Borland was genau dafür vorgesehen ist? Wenn letzteres wird sehr wohl die .bdsproj genommen, von dort holt er sich die entsprechenden Compiereinstellungen etc.

hs-y 2. Jul 2009 11:07

Re: Error beim kompilieren via Kommandozeile
 
Ne, ich nutze den mitgelieferten Compiler dcc32.exe, der einfach über der .dpr aufgerufen wird.

Die IDE benutzt die zugehörige dll: dcc100.dll (oder so ähnlich)

Diese sind insofern identisch, als sie dasselbe tun.

Muetze1 2. Jul 2009 12:54

Re: Error beim kompilieren via Kommandozeile
 
Der DCC32 direkt nutzt nicht die Einstellungen, das ist richtig. Aber der hat noch andere Unzulänglichkeiten und man muss ihn entsprechend mit einer gut langen Kommandozeilenkette füttern. Die Benutzung von make wäre da ja schon eine Möglichkeit, da sich dieses vorher auch um die Bereitstellung der nötigen Umgebung für den dcc kümmert. Schonmal alternativ probiert?

Und wurden die intermediates vor jedem Versuch gelöscht? Also vor allem in Bezug auf die Aussage, dass es im anderen Verzeichnis funktioniert und im anderen nicht.

Hansa 2. Jul 2009 13:48

Re: Error beim kompilieren via Kommandozeile
 
Mir fehlen hier einige wichtige Hinweise. Vor allem bezüglich der CFG-Dateien. DCC32 verwendet diese und dabei sind die Prioritäten wichtig. Zuerstmal kommen die : Programmname.CFG im Verzeichnis der DPR. Dann gibts noch eine DCC32.cfg und wird benutzt, sofern keine Programmname.cfg existiert. Dazu kommen noch die in Windows eingestellten Suchpfade. Und zu allem Überfluss hat das alles mit den in der IDE eingestellten Sachen nichts zu tun. Lösche am besten die ganzen CFGs und erzeuge sie neu.

hs-y 3. Jul 2009 07:45

Re: Error beim kompilieren via Kommandozeile
 
Nein mit make habe ich mich noch nicht beschäftigt! Eigentlich bis jetzt nur mit dem dcc32. Wichtig wäre es aber auf jeden Fall, dass ich das dann auch auf anderen unabhängigen Rechnern neu erzeugen kann ohne IDE und wenn nur die Suchpfade gesetzt (und kopiert) sind.
Also damit meine ich, dass ich dann das Projekt auf anderen Rechnern kompilieren kann, die nur die entsprechenden Sourcen besitzen.

Ich nehme an mit den Intermediates meinst du Dinge wie die .drc und .dcu - Dateien. Ja die werden vorher gelöscht.

Die cfgs habe ich gelöscht und neu erzeugt und es gibt keine Veränderung.

Wie gesagt was ich seltsam finde ist, dass offenbar der --depends Schalter für diesen internen Error verantwortlich ist. Der ist aber für meinen Use-Case nötig.

TrickyMartin 17. Aug 2009 15:00

Re: Error beim kompilieren via Kommandozeile
 
Zitat:

Zitat von hs-y
Das Projektverzeichnis liegt auf demselben PC in dem selben Teil der Festplatte (C:\) in einem Unterordner, während das Ausgabeverzeichnis in C:\Programme\Borland\BDS\...

Also ich tippe ganz stark darauf, dass du deswegen Probleme hast, weil du unter C:\Programme\ schreiben willst, und dazu braucht es unter Vista Admin-Rechte. Setze mal alle Pfade auf irgend ein anderes Verzeichnis, z.B. c:\temp\ (das du vorher händisch anlegst), das sollte dein Problem lösen.

Sorry für den späten push, aber stolpert ja nochmal jemand anderes über dieses Problem.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:24 Uhr.

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