Autor Beitrag
hRb
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 267
Erhaltene Danke: 12



BeitragVerfasst: Mi 21.11.18 17:01 
Hallo, hoffe in dieser Sparte richtig zu sein.
Seit kurzem stelle ich fest, dass die Datei Unit1.dcu nicht mehr im Hauptverzeichnis, sondern im Unterverzeichnis ../WIN32/Debug/ steht. Lösche ich die Datei wird sie an gleicher Stelle wieder angelegt, bei verschieben in den Hauptordner wird sie ignoriert - auch bei laufender Sitzung. Ebenso landet im diesem ../WIN32/Debug/ die compilierte exe. Bei anderen Programmen ist dies nicht der Fall
Was habe ich da (unbewusst) verändert, bzw. wie erreiche ich, dass die Dateien vom Compiler wieder im Hauptverzeichnis gesucht werden?
Arbeite mit Delphi 10.1 Berlin. Danke für Tipps
PS: Habe zur Fortentwicklung des Programms eine Ordner-Kopie angelegt. Kommt es aus diesem Grund?
hRb


Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mi 21.11.2018 um 17:28
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 23.11.18 12:44 
Ich kann nur dringend empfehlen dieses Kuddelmuddel mit Kompilaten zwischen den Quelltexten zu sortieren...

Spätestens, wenn du nicht nur für Windows 32-Bit entwickelst, bekommst du sonst massive Probleme. Aber auch der Übersicht halber macht es ja keinen Sinn. Das wäre ja als ob man auf der Festplatte nur ein Verzeichnis mit Millionen von Dateien hätte (überspitzt gesagt). ;-)

Verantwortlich ist dafür das DCU-Ausgabeverzeichnis wie es in den Projektoptionen eingestellt ist. Standardmäßig enthält das Plattform und Debugkonfiguration, damit dort nichts durcheinander geht.
hRb Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 267
Erhaltene Danke: 12



BeitragVerfasst: Sa 24.11.18 15:26 
Hallo jaenicke,
Zitat:
Ich kann nur dringend empfehlen dieses Kuddelmuddel mit Kompilaten zwischen den Quelltexten zu sortieren...

Geanu das möchte ich ja tun. Als Hobbyprogrammierer lasse ich jedoch (zumindest bewusst) die Finger weg von allen System-Objekteinstellungen.
Unter Projekt/Optionen konnte ich auch keine Einstellungen erkennen, die auf andere Pfade hinweisen (siehe beigefügtes Screen-Bild). Habe auch ohne Erfolg schon die gesamten Project1.* Dateien nach dcu durchsucht.
Vielleicht kannst Du mir genau nennen, an welcher Stelle "zu drehen" ist, damit die dcu-Datei wieder im Hauptverzeichnis gesucht wird, bzw. die exe dort abgelegt wird. Wäre Dir oder anderen sehr verbunden.
hRb
Einloggen, um Attachments anzusehen!
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: So 25.11.18 10:40 
Du scheinst user profile iconjaenicke wohl falsch verstanden zu haben: die Ausgabedateien sollen ja extra nicht im selben Verzeichnis wie die Projektdateien erstellt werden! Wenn du verschiedene Projektkonfigurationen kompilierst, so würden sich diese ja sonst gegenseitig überschreiben. Und auch bei Arbeiten mit einem Quellverwaltungssystem (was immer anzuraten ist, auch für Hobbyprogrammierer) wie z.B. git, verkompliziert es nur das tägliche Arbeiten damit (so kann man nämlich einfach dann diese Unterordner von dem Einchecken ausnehmen).

Einzig, daß sowohl die Ausgabedateien (EXE) als auch die Unit-Dateien (DCU) im selben Verzeichnis "./$(Plattform)/$(Config)" sind, erscheint mir eigenartig (ich kenne von anderen Systemen, daß diese getrennt sind, da DCU-Dateien ja nur temporäre Dateien und nicht für die Weitergabe (Deploy/Setup) bestimmt sind.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 27.11.18 08:56 
user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
Einzig, daß sowohl die Ausgabedateien (EXE) als auch die Unit-Dateien (DCU) im selben Verzeichnis "./$(Plattform)/$(Config)" sind, erscheint mir eigenartig
Das ist bei Delphi so. Das Deployment gibt es dort auch, erfolgt aber nicht in das Ausgabeverzeichnis, sondern holt dort die nötigen kompilierten Dateien heraus.

Übrigens benutzen wir als Ausgabeverzeichnis Verzeichnisse, die komplett außerhalb des Quelltextes liegen. Dadurch kann man noch einfacher mit einem Versionskontrollsystem arbeiten.

Für diesen Beitrag haben gedankt: Th69
hRb Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 267
Erhaltene Danke: 12



BeitragVerfasst: Sa 08.12.18 13:17 
Entschuldigung wenn ich nicht immer zeitnah antworten kann.
Finde alles Gesagte richtig und auch wichtig, aber sorry, meine eigentliche Frage ist damit nicht beantwortet. Ausgangspunkt war ja, dass sich die Datei unit1.dcu nicht mehr im Hauptordner aktualisiert, sondern im Unterordner WIN32/Debug. Ebenso das compilierte Programm dort abgelegt wird.
Die Aussage:
Zitat:
Das ist bei Delphi so.
möchte ich hinterfragen, denn ich habe Programme:
- die legen im Hauptverzeichnis ab unter dem Name project1.exe (später Umbenennung erforderlich)
- solche, sie im Hauptverzeichnis ablegen und den gewünschten (späteren) Programmnamen beibehalten, d.h. altes Programm überschreiben
- und solche die in WIN32/Debug ablegen.
Dieser Mix könnte natürlich auch so entstanden sein, dass ich Delphi7-Programme auf Delphi 10.2 neu übersetzt/angepasst habe.
Wenn ich Euren Empfehlungen folgen sollte, dann müsste ich vermutlich in den Compilereinstellungen Pfade anpassen. Ich kann aber nicht erkennen unter welcher Option dies exakt geschieht und wollte den "Mechanismus" verstehen. Geht es hier bitte etwas präziser? "./$(Plattform)/$(Config)" (Delphi 10.2 Berlin) ist für mich unverständlich.
PS: die Pfade finde ich in der Hilfsdateie Project.dproj, aber dort ändert man ja nicht händisch!

Und noch ein Letztes: der Beitrag wurde vom Admi in eine andere Rubrik verschoben. Wo wäre er denn thematisch richtig angesiedelt gewesen?
Danke und Gruß hRb
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Sa 08.12.18 14:05 
Wenn du wirklich im Projekthauptverzeichnis die generierten Dateien haben möchtest, dann mußt du eben statt "./$(Plattform)/$(Config)" nur dort "./" eintragen (was aber wirklich nicht mehr zu empfehlen ist).
Du solltest besser alle deine Projekte auf "./$(Plattform)/$(Config)" umstellen. Sonst mußt du ja bei jedem Wechsel von z.B. Debug auf Release immer einen kompletten Clean+Build (bzw. Rebuild) durchführen.
Mir scheint, du kennst dich noch nicht gut genug mit den Projektoptionen aus, wenn du z.B. Projekte mit "project1.exe" als Ausgabedatei hast.

PS: Die richtige Rubrik ist genau diese, also Programmierwerkzeuge.
hRb Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 267
Erhaltene Danke: 12



BeitragVerfasst: Mi 12.12.18 18:50 
Zitat:
Mir scheint, du kennst dich noch nicht gut genug mit den Projektoptionen aus
Richtig geraten, bin schon über 20 Jahre aus dem Beruf raus (mit Turbo-Pascal). Danach nur noch do-it-yourself (ohne Kurse) und mit Eurer Hilfe.
Werde mal alle Anwendungen im Detail durchgehen.
Gruß hRb