Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Es wird keine EXE erstellt (https://www.delphipraxis.net/199414-es-wird-keine-exe-erstellt.html)

hoika 22. Jan 2019 07:55

AW: Es wird keine EXE erstellt
 
Hallo,
alles außer den pas/dfm/dpr löschen/verschieben und neu anlegen lassen.

kwhk 22. Jan 2019 08:43

AW: Es wird keine EXE erstellt
 
Hallo hoika !
Das war es !!! :-D
Nun wird wieder die EXE erstellt und funktioniert auch.
Vielen Dank für den Hinweis ! :!:

DP-Maintenance 22. Jan 2019 08:45

Dieses Thema wurde am "22. Jan 2019, 09:45 Uhr" von "Luckie" aus dem Forum "Programmieren allgemein" in das Forum "Die Delphi-IDE" verschoben.

Uwe Raabe 22. Jan 2019 09:03

AW: Es wird keine EXE erstellt
 
Probier mal, ob es funktioniert, wenn du in den Projektoptionen unter Anwendung die Erweiterung für die Zieldatei löschst.

kwhk 22. Jan 2019 10:40

AW: Es wird keine EXE erstellt
 
Hallo Uwe,
da stand keine Erweiterung, aber in einem Link habe ich gelesen, dass beim Import von Delphi 7 dort z.B. .EXE eingetragen werden soll. Das klappte aber auch nicht, weder mit noch ohne .EXE.

Nachdem ich die dproj u.a. neu erstellt habe, funktioniert es.
Ich habe die alte und neue mit WINDIFF verglichen, da sind ja jede Menge Unterschiede.

Das betreffende Programm habe ich bereits 2002 damals mit Delphi 3 programmiert, später über Delphi 5, 6 und 7 jeweils angepasst und nun mit Delphi 10.3. Wer weiß, was da noch für alte Informationen gespeichert waren, die Delphi 10.3 verwirrt haben.

Hier die neuen Dateien

Code:
D:\Delphi10RAD\HK\HkMp3Dir>dir
 Datenträger in Laufwerk D: ist Hi_D_2000
 Volumeseriennummer: CAD9-24CB

 Verzeichnis von D:\Delphi10RAD\HK\HkMp3Dir

22.01.2019  11:13    <DIR>         .
22.01.2019  11:13    <DIR>         ..
22.01.2019  09:37    <DIR>         #SI
22.01.2019  00:30               345 HkMp3Dir.dpr
22.01.2019  11:13            30.273 HkMp3Dir.dproj
22.01.2019  11:13                62 HkMp3Dir.dproj.local
22.01.2019  10:40         2.478.080 HkMp3Dir.exe
22.01.2019  11:13               170 HkMp3Dir.identcache
22.01.2019  10:34             2.476 HkMp3Dir.res
22.01.2019  11:13               167 HkMp3Dir.stat
22.01.2019  10:34             9.357 HkMp3DirAuswahl.dcu
22.01.2019  09:46             1.550 HkMp3DirAuswahl.dfm
22.01.2019  09:46             2.206 HkMp3DirAuswahl.pas
22.01.2019  10:34            25.534 HkMp3DirPgm.dcu
22.01.2019  10:35             1.950 HkMp3DirPgm.dfm
22.01.2019  10:28            23.584 HkMp3DirPgm.pas
21.01.2019  21:11               766 HkMp3Dir_Icon.ico
              14 Datei(en),     2.576.520 Bytes
               3 Verzeichnis(se), 1.147.874.422.784 Bytes frei
Und hier die alten (fehlerhaften)
Code:
D:\Delphi10RAD\HK\HkMp3Dir\#SI\1>dir
 Datenträger in Laufwerk D: ist Hi_D_2000
 Volumeseriennummer: CAD9-24CB

 Verzeichnis von D:\Delphi10RAD\HK\HkMp3Dir\#SI\1

22.01.2019  09:38    <DIR>         .
22.01.2019  09:38    <DIR>         ..
22.01.2019  09:38    <DIR>         #Loe
22.01.2019  00:30               345 HkMp3Dir.dpr
22.01.2019  08:06            30.984 HkMp3Dir.dproj
22.01.2019  08:06               392 HkMp3Dir.dproj.local
22.01.2019  08:50               170 HkMp3Dir.identcache
22.01.2019  08:06           326.490 HkMp3Dir.obj
22.01.2019  08:06             3.004 HkMp3Dir.res
22.01.2019  08:50               166 HkMp3Dir.stat
22.01.2019  08:06             8.932 HkMp3DirAuswahl.dcu
11.07.2013  16:45             1.534 HkMp3DirAuswahl.dfm
22.01.2019  08:06             7.863 HkMp3DirAuswahl.obj
21.01.2019  22:19             2.206 HkMp3DirAuswahl.pas
22.01.2019  08:06            24.945 HkMp3DirPgm.dcu
22.01.2019  08:50             1.922 HkMp3DirPgm.dfm
22.01.2019  08:06            19.883 HkMp3DirPgm.obj
21.01.2019  22:08            23.584 HkMp3DirPgm.pas
21.01.2019  21:11               766 HkMp3Dir_Icon.ico
22.01.2019  00:30                72 HkMp3Dir_project.tvsconfig
22.01.2019  00:30    <DIR>         ModelSupport_HkMp3Dir
              17 Datei(en),       453.258 Bytes
               4 Verzeichnis(se), 1.147.874.422.784 Bytes frei
Mir fällt auf, bei den alten Dateien gab es OBJ-Dateien aber keine EXE,
bei den neuen gibt es wieder eine EXE aber keine OBJ-Dateien.
War da irgendwo eingestellt, beim Compilieren sollen OBJ erstellt werden anstelle EXE ?
Kann man so etwas einstellen ?

########## Ergänzung 12:24

Ich habe das Projekt noch mal mit Delphi 7 aufgerufen und festgestellt, dass dort bei den Projekt-Optionen => Linker-Ausgabe ein Auswahlpunkt bei C-Objektdateien erzeugen gesetzt war.
Man kann alternativ auch DCUs erzeugen (das sollte eingestellt sein) und C++-Objektdateien erzeugen auswählen. Eine von den drei Möglichkeiten muss ausgewählt werden.
Bewusst habe ich das nicht gemacht. Delphi 7 erstellt trotz dieser Einstellung eine EXE und zusätzlich die OBJ-Dateien.

Diese Einstellung war offenbar die Ursache für das Fehlen der EXE, weil Delphi 10.3 diese Sache anders handhabt.

Bei 10.3 Projekt => Optionen => Erzeugen => Delphi-Compiler => Ausgabe - C/C++ => Erzeugung der C/C++-Ausgabedatei muss folgendes eingestellt sein: Nur DCUs erzeugen.

Uwe Raabe 22. Jan 2019 11:26

AW: Es wird keine EXE erstellt
 
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:

Zitat von kwhk (Beitrag 1423828)
da stand keine Erweiterung,

Also in der Datei, die du hochgeladen hast, schon! (siehe Bild 1)

Da dort auch ein Punkt vor dem EXE steht, wird auch eine HkMp3Dir..EXE erzeugt.

Zitat:

Zitat von kwhk (Beitrag 1423828)
War da irgendwo eingestellt, beim Compilieren sollen OBJ erstellt werden anstelle EXE ?
Kann man so etwas einstellen ?

Nicht anstelle, aber zusätzlich zu den DCUs. (siehe Bild 2)

kwhk 22. Jan 2019 20:35

AW: Es wird keine EXE erstellt
 
Hallo Uwe,
Danke für Deine Mühe.
Ich habe den folgenden Artikel gefunden
http://docwiki.embarcadero.com/RADSt...lease-Hinweise
und dort folgenden Hinweis betreff Delphi 7:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Upgrade von Delphi 7

Wenn Sie ein Upgrade eines in Delphi 7 oder einem anderen frühen Release erstellten Projekts ausführen und das Projekt über eine benutzerdefinierte Dateierweiterung verfügt, müssen Sie Projekt > Optionen > Anwendung wählen, und die Erweiterung der Zieldatei auf den mit Ihrem Projekt übereinstimmenden Typ setzen (.exe, .dll oder .bpl).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Da stand ".EXE", also EXE mit einem Punkt.
Ich habe damit herumprobiert. EXE mit und ohne Punkt und ganz ohne einen Eintrag, so war es voreingestellt.
Es kann sein, dass zum Zeitpunkt als ich Datei hochgeladen habe, gerade .EXE eingestellt war.
Aber ganz egal, es wurde keine EXE erstellt, auch keine ..EXE, es wurden nur die OBJ-Dateien für C erstellt, wie es bei Delphi 7 versehentlich eingestellt war. Im Unterschied zu Delphi 7 wurde aber nicht zusätzlich die EXE trotz dieser Einstellung erstellt.

Bei Delphi 7 ist es mir deshalb nicht aufgefallen. Dass es OBJ-Dateien gab, war mir eigentlich egal. Es gab die EXE und darauf kam es an.

Für mich ergibt sich die Frage, für welche C/C++ Programme sind die OBJ-Dateien gedacht. Ich benutze auch C++ und C#, allerdings mit dem Visual Studio 2017 von MS. Kann man dort diese OBJ-Dateien benutzen ?
Man müsste ja dann auch OBJ-Dateien für C# erstellen können. C# gibt es ja auch seit mehreren Jahren. Es hat mehr Ähnlichkeiten mit Delphi als mit C++ oder C.

RAD Studio 10.3 kann auch C++ und C. Das habe ich bei mir aber nicht installiert, nur Delphi.

hoika 22. Jan 2019 21:21

AW: Es wird keine EXE erstellt
 
Hallo,
die OBJ-Dateien waren bestimmt für den C++-Builder.
Das Format ist je nach C/C++-Compiler natürlich inkompatibel ... ;)

Ein Abschluss-Test, ob das wirklich die Einstellung war,
wäre im alten Delphi die OBJ-Datei-Erzeugung zu deaktivieren und es dann auszuprobieren.

Dazu hätte ich aber persönlich keine Lust ;)

EWeiss 22. Jan 2019 21:37

AW: Es wird keine EXE erstellt
 
Zitat:

Kann man dort diese OBJ-Dateien benutzen ?
Die frage wäre was willst du damit.

OBJ-Dateien (vom Compiler generierter Maschinencode) werden benötigt für den Linker um daraus exe Dateien erstellen zu können.
Es ist aber nicht nötig diese erzeugen zu lassen das macht der Compiler in Delphi denke ich mal im Speicher. (In VB6 werden sie auf die Platte gespeichert und nach dem erstellen der EXE automatisch gelöscht)

Leider wurde das Extension von anderen Programmen missbraucht von Wavefront Technologies zum Beispiel so das man nicht mehr mit Bestimmtheit sagen kann für was die Endung eigentlich steht.

gruss

Uwe Raabe 22. Jan 2019 23:18

AW: Es wird keine EXE erstellt
 
Zitat:

Zitat von EWeiss (Beitrag 1423925)
OBJ-Dateien (vom Compiler generierter Maschinencode) werden benötigt für den Linker um daraus exe Dateien erstellen zu können.
Es ist aber nicht nötig diese erzeugen zu lassen das macht der Compiler in Delphi denke ich mal im Speicher.

Der Delphi Compiler benötigt für Delphi-Projekte keine OBJ-Dateien sondern erzeugt direkt DCU Dateien. Auch der Linker benötigt in diesem Fall keine OBJ-Dateien, sondern kann direkt mit den DCU Dateien arbeiten.

Die OBJ-Dateien können beim Compilieren aber (optional) zusätzlich erzeugt werden, falls diese für den C++ Builder benötigt werden. Damit können auch C++ Projekte auf Delphi-Units zurückgreifen. Die gesamte RTL/VCL/FMX wird auf diese Weise für den C++ Builder bereit gestellt.

Das Abschalten der OBJ-Erzeugung hat in manchen Fällen den Vorteil, daß C++ spezifische Warnungen nicht mehr ausgegeben werden. Wenn man also den C++ Builder nicht verwendet, kann man die OBJ-Erzeugung einfach abschalten und erhält weniger Warnungen, eine leicht bessere Performance und es wird weniger Plattenplatz verschwendet.

C++-Objektdatei


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:52 Uhr.
Seite 2 von 3     12 3      

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