Delphi-Version: 2007
Verwendete Unit 'foo' kann nicht kompiliert werden
Ahoi!
Ich habe eine kleine Komponentensammlung, die für bis D2006 ausgelegt war (zum Zeitpunkt als sie gebaut wurde war das die neuste). Ich muss sie nun in D2007 benutzen. Daher habe ich mir die Packages und Units zur Brust genommen, und das einzige was ich finden konnte waren eine Hand voll Conditionals die explizit die Unit Variants für D7-2006 deklariert haben. Einfach ein Conditional für D2007 zugefügt, und schon ließen sich die Packages kompilieren und installieren. Die Dinger liegen also in meiner Palette, und scheinen "ready to use" zu sein. Nun öffne ich ein Projekt, welches diese Kompos nutzt, und Erzeuge es spaßeshalbar mal. Und dann trifft mich im Titel genannter Fehler. Was mich dabei irritiert: Die Unit war im Rahmes des Packages völlig problemlos zu kompilieren, und es liegt sogar eine DCU mit Datum von gerade eben im selben Verzeichnis. Warum wird also a) versucht erneut zu kompilieren, und b) warum klappt das in meinem Projekt auf ein Mal nicht mehr, wo es in der selben Instanz von Delphi 20sec vorher mit dem Package noch ging? Heissen Dank für alle Ideen! |
AW: Verwendete Unit 'foo' kann nicht kompiliert werden
Hast du den Bibliothekspfad auf die dcu aus dem Package und den Suchpfad auf die Sourcen gelegt?
|
AW: Verwendete Unit 'foo' kann nicht kompiliert werden
Ich habe sowohl den Such- als auch den Bibliothekspfad aller vier Verzeichnisse mit den Quellen und den DCUs eingetragen, ja. Anders gesagt, ist schon spät und manchmal drücke ich mich kompliziert aus: DCU und PAS liegen im selben Pfad, und die jeweiligen Pfade sind in beiden Listen vorhanden.
Ich bin soweit auch alle Units der Komponenten durchgegangen, und in keiner lässt sich mehr ein Conditional finden, dass angepasst werden müsste. Und es kompiliert ja auch - nur nicht, wenn ich ein Programm mit den Kompos erzeuge. Lediglich das Package zum installieren der Kompos mag mich. Ich habe, so weit ich das überblicke, auch alle Pfade eingetragen, in denen relevante Quelldateien liegen. Das prüfe ich morgen nochmals genauer. Schade auch, dass Delphi hier nicht mehr Infos liefert als "nö, geht nich" :? |
AW: Verwendete Unit 'foo' kann nicht kompiliert werden
Gibt es vorher andere Fehlermeldungen? Oder siehst Du die wegen der ganzen Warnings nicht ;)
|
AW: Verwendete Unit 'foo' kann nicht kompiliert werden
Ich bekomme eben leider nur genau diese eine Meldung beim Build. (Ich gehöre zu der zeitverschwenderischen Fraktion, die peinlichst darauf achtet, auch Warnungen stets zu beheben bevor ich einen Build an Kunden gebe :stupid:)
|
AW: Verwendete Unit 'foo' kann nicht kompiliert werden
Liegt es vielleicht an Deinen überarbeiteten Defines? Dass die Beim Übersetzen der BPL anders gesteuert werden als dann im Projekt?
|
AW: Verwendete Unit 'foo' kann nicht kompiliert werden
Hmm, ich habe zu wenig Erfahrung mit Defines, um das beantworten zu können. Wundern würde es mich allerdings.
Im Grunde waren es solche Konstrukte:
Delphi-Quellcode:
Ich habe dieses dann einfach zu dem gemacht:
implementation
uses {$IFDEF VER150} Variants, {$ENDIF} {$IFDEF VER160} Variants, {$ENDIF} {$IFDEF VER170} Variants, {$ENDIF} SomeOtherUnit;
Delphi-Quellcode:
Mehr war nicht zu ändern um die Packages installieren zu können.
implementation
uses {$IFDEF VER150} Variants, {$ENDIF} {$IFDEF VER160} Variants, {$ENDIF} {$IFDEF VER170} Variants, {$ENDIF} {$IFDEF VER180} Variants, {$ENDIF} // <- neu SomeOtherUnit; |
AW: Verwendete Unit 'foo' kann nicht kompiliert werden
Es gab tatsächlich in einem der 3 Verzeichnisse mit den Quellen noch ein Unterverzeichnis mit einer Hand voll Units. Ich nehme an, dass das Package explizit auf diese verwiesen hat, was mein Programm ja nicht tut. Jetzt wo das auch im Lib- und Suchpfad ist, klappt alles. Danke für den Stupser!
(Da könnte Delphi wirklich etwas ausführlicher sein in seiner Fehlermeldung, grr.) |
AW: Verwendete Unit 'foo' kann nicht kompiliert werden
Zitat:
|
AW: Verwendete Unit 'foo' kann nicht kompiliert werden
Da das Kompos von einem Drittanbieter sind, will ich da nicht zu groß drin basteln. Ein einfacher Fix reicht mir an dieser Stelle. Aber die Idee die du nennst, klingt prinzipiell sinnvoll!
|
AW: Verwendete Unit 'foo' kann nicht kompiliert werden
Fragen die tatsächlich in jeder einzelnen Unit die Delphi-Version ab? Das DRY-Prinzip gilt IMO auch für Compiler-Direktriven (meine Meinung).
|
AW: Verwendete Unit 'foo' kann nicht kompiliert werden
Sehe ich sehr ähnlich. Aber es gibt halt nicht nur Leute, die durch die Bank weg Muster-Code schreiben. (Was mir teilweise schon untergekommen ist... da war das hier eine Superlapalie. Und insgesamt ist das eigentlich sogar ganz gut gemacht, halt nicht an allen Stellen.)
|
AW: Verwendete Unit 'foo' kann nicht kompiliert werden
Zitat:
|
AW: Verwendete Unit 'foo' kann nicht kompiliert werden
Zitat:
|
AW: Verwendete Unit 'foo' kann nicht kompiliert werden
Zitat:
Ich bekomme bei den Packages von einigen immer das kalte Grausen und dann passe ich die entsprechend an, bevor ich mir in mein Programm z.B. Debug-Code reinlinke obwohl es Release sein soll ;) Aber jeder wie er mag ... |
AW: Verwendete Unit 'foo' kann nicht kompiliert werden
Wenn mir das einer bezahlen würde, mache ich das gerne. Dass ich für die kleine Funktionserweiterung des bestehenden Projektes mit den Komponenten überhaupt Geld sehe ist schon gut, und ich nutze die Gelegenheit das Projekt von D7 nach D2007 zu lupfen. Wünschen würde ich mir auch saubere Codebasen bei meinen eingekauften Kompos - aber ich habe sie eben gekauft, um KEINEN Entwicklungsaufwand damit zu haben. Und da es eigentlich mein persönliches Vergnügen ist, dass ich schon auf D2007 umstelle, muss ich einfach an gewissen Stellen was wirtschaftliche Denken einschalten. Ist ja nicht so, dass mich das in der Pflege jetzt in Zukunft unsäglich nach unten ziehen wird. Irgendwo ist halt dann auch mal gut mit aufhübschen und Idealen verfolgen. Dann muss Geld verdient werden. Ergo: Der Fix reicht.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:01 Uhr. |
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