Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Eigene Compiler-Oberfläche (https://www.delphipraxis.net/27800-eigene-compiler-oberflaeche.html)

SebE 15. Aug 2004 19:55


Eigene Compiler-Oberfläche
 
Hi.
Ich weis nicht, ob die Frage passt.

Also, kann man einen vorhandenen Compiler (wirklich nur den Compiler) mit einer eigenen Oberfläche verknüpfen?

fkerber 15. Aug 2004 19:59

Re: Eigene Compiler-Oberfläche
 
Hi!

Eigentlich ja, der Compiler ist doch nur ein Kommandozeilen-Tool.
Das kannst du natürlich auch über ein anderes Programm aufrufen, mit entsprechenden Paramtern.

Oder verstehe ich die Frage falsch?


Ciao Frederic

SebE 15. Aug 2004 20:04

Re: Eigene Compiler-Oberfläche
 
Naja ich habe die Idee gehabt einen eigenen Compiler zu basteln.
Da ich das aber nicht bringe, dachte ich mir, nehme ich mir einen vorhandenen (z.B. NASM, TASM,... - gut das sind Assembler, sollte aber keinen Unterschied machen) und baue meine eigene Oberfläche drumrum.

Geht das - Wenn ja weis jemand wie oder kennt jemand Links?

Danke im Voraus.

fkerber 15. Aug 2004 20:08

Re: Eigene Compiler-Oberfläche
 
Hi!

Die Frage ist, willst du nur ein Steuerungstool für den Compiler haben oder willst du eine IDE bauen?

Ciao Frederic

SebE 15. Aug 2004 20:16

Re: Eigene Compiler-Oberfläche
 
Ich wollte schon wie eine eigene IDE aufbauen, falls ich das irgendwie hinbekomme.

Wie meiste du das mit "Steuerungs-Tool"?
Kann mir gerade nichts drunter vorstellen.

fkerber 15. Aug 2004 20:34

Re: Eigene Compiler-Oberfläche
 
Hi!

Ok, wenn du eine IDE erzeugen willst, dann ist das was anderes.
Such mal hier im Forum, das hatten wir innerhalb der letzten 24h so oder so ähnlich schonmal.

Und dann müsste es noch unter Hier im Forum suchenFireDev etwas verwertbares geben für dich.


Ciao Frederic

mschaefer 15. Aug 2004 20:39

Re: Eigene Compiler-Oberfläche
 
Moin. moin,


Delphi hat einen Commandozeilencompiler, der per Batchdatei angesteuert werden
kann, allerdings recht viele Parameter mit übergeben bekommen muß. Man sollte daher durchaus
ansprechende Batch-Kenntnisse haben. Der IDE-Compiler scheint mir allerdings in eininge Aspekten dem Kommandozeilenkompiler überlegen zu sein, was mit der begrenzten Länge einer Kommandozeile zutun hat.

Kommandozeilenkompiler: DCC32


Die Idee mit der IDE zum DCC323...
Gibt´s schon, aber da kann man natürlich weiterarbeiten, den die meisten Lösungen sind
durchaus verbesserungswürdig. Eine ordentliche Batchsteuerung mit IDE Parametereinstellung
kann große Projekte von Compilern bis zum automatisierten Setup ermöglichen. Also da gibt es
noch genug Betätigungsfeld.



Schau mal nach unter
Compiler bei Torry

Interessant ist die PocketIDE. Da kann man tatsächlich für Delphi dran weiterarbeiten.
Pocket IDE für DCC32


Viel Erfolg // Martin

MaBuSE 17. Aug 2004 09:34

Re: Eigene Compiler-Oberfläche
 
Folgende IDE's sind auch in Delphi/Kylix geschrieben.
Das steht zumindest so bei sourceforge.net in der Beschreibung

Ich habe nur mal die ersten Vier rausgesucht, es existieren noch viele mehr :-)

http://sourceforge.net/projects/dev-cpp/

Dev-C++ is an full-featured Integrated Development Environment (IDE) for Win32. It uses GCC, Mingw or Cygwin as compiler and libraries set.

Development Status: 6 - Mature
Environment: Win32 (MS Windows), X11 Applications
Intended Audience: Developers, End Users/Desktop
License: GNU General Public License (GPL)
Natural Language: English
Operating System: Windows 95/98/2000, Windows NT/2000, Linux
Programming Language: Delphi/Kylix
Topic: Software Development

--------------------------------------------------------------------------------


http://sourceforge.net/projects/devphp/

Dev-PHP is a full-featured Integrated Development Environment for PHP. It's fast, powerful and has a user-friendly interfase. It has many cool features, like Function browsing and full integration with the PHP parser and the PHP-GTK library.

Development Status: 3 - Alpha, 5 - Production/Stable
Environment: Win32 (MS Windows)
Intended Audience: Developers, Education, System Administrators
License: GNU General Public License (GPL)
Natural Language: English, Spanish
Operating System: Windows 95/98/2000, Windows NT/2000
Programming Language: Delphi/Kylix, PHP
Topic: Dynamic Content, Interpreters, Integrated Development Environments (IDE)

--------------------------------------------------------------------------------


http://sourceforge.net/projects/open-perl-ide/

Open Perl IDE is a visual, integrated development environment for writing and debugging Perl scripts with any standard Perl distribution under Windows 95/98/NT/2000.

Development Status: 5 - Production/Stable
Environment: Win32 (MS Windows)
Intended Audience: Developers
License: Mozilla Public License 1.1 (MPL 1.1)
Natural Language: English
Operating System: Windows 95/98/2000, Windows NT/2000
Programming Language: Delphi/Kylix, Perl
Topic: Debuggers, Integrated Development Environments (IDE)


--------------------------------------------------------------------------------


http://sourceforge.net/projects/basic-ide/

The BASIC IDE is an open source IDE for the RapidQ programming language. It has an flexible code editor and form designer for all the RapidQ components. Future additions include Code Tip and Code Completion. The IDE is written in Object Oriented Delphi.

Development Status: 3 - Alpha
Environment: Win32 (MS Windows)
Intended Audience: Developers
License: GNU General Public License (GPL)
Operating System: Windows
Programming Language: Delphi/Kylix
Topic: Code Generators, Integrated Development Environments (IDE)

Phoenix 17. Aug 2004 09:48

Re: Eigene Compiler-Oberfläche
 
Zitat:

Zitat von mschaefer
Der IDE-Compiler scheint mir allerdings in eininge Aspekten dem Kommandozeilenkompiler überlegen zu sein, was mit der begrenzten Länge einer Kommandozeile zutun hat.

Sorry, aber das ist schwachfug.
Auch die IDE steuert nur den Kommandozeilencompiler an. Die Einstellungen die in der IDE gemacht werden, werden in der entsprechenden .cfg - Datei zum Projekt gespeichert, diese Datei wird dann dem Compiler übergeben und gut ist.

Somit muss das fürs Projekt nur einmal in der Datei festgehalten werden und gut ist.

maximov 17. Aug 2004 10:03

Re: Eigene Compiler-Oberfläche
 
Zitat:

Zitat von Phoenix
...
Sorry, aber das ist schwachfug.
Auch die IDE steuert nur den Kommandozeilencompiler an...

Sorry, aber das ist ... :mrgreen:

Meines wissens benutzt die IDE nicht die DCC32.exe, sondern die DCC70.DLL! Was für die handhabung innerhalb der IDE natürlich viel günstiger ist, da der compiliervorgang im selben prozess stattfindet. Gibt hier glaub ich auch berichte über unterschiedliches verhalten der beiden teile.

Also nicht immer gleich losbrüllen.

mschaefer 17. Aug 2004 10:10

Re: Eigene Compiler-Oberfläche
 
Moin, moin,

ups,was für´n Ding? Du kannst Die Befehle zum DCC32 in die Kommandozeile legen, dann unterliegt Sie der Längenbegrenzung dieser (getestet) und in die cfg.

Ok, das mit der cfg Löst dann viele Probleme. Danke für den Hinweis!

Fataler Weise kompiliert mein Delphi auch dann, wenn ich den DCC32
im Bin - Verzeichnis gelöscht habe !

Ok , danke es löst sich also doch so auf. Naja es bastelt ja nun nicht jeder an
seinen Delphi-Interna herum

Viele Grüße // Martin

MaBuSE 17. Aug 2004 10:51

Re: Eigene Compiler-Oberfläche
 
Zitat:

Zitat von maximov
Zitat:

Zitat von Phoenix
...Sorry, aber das ist schwachfug.
Auch die IDE steuert nur den Kommandozeilencompiler an...

Sorry, aber das ist ... :mrgreen:

Meines wissens benutzt die IDE nicht die DCC32.exe, sondern die DCC70.DLL! Was für die handhabung innerhalb der IDE natürlich viel günstiger ist, da der compiliervorgang im selben prozess stattfindet. ...

Also nicht immer gleich losbrüllen.

Maximov hat Recht !!!

Die IDE benutzt nicht den DCC32.EXE.
(Einfach mal die DCC32.EXE umbennenen. Die IDE kann trotzdem kompilieren :-))

Zitat:

Zitat von maximov
Gibt hier glaub ich auch berichte über unterschiedliches verhalten der beiden teile.

Maximov hat schon wieder Recht !!!
In der DCC32.EXE ist leider ein dummer Bug drinn, der in der IDE nicht passiert.
Die Schalter /N und /LN funktionieren nicht auf Laufwerk B:
Das gilt auch für die Einstellungen in der dcc32.cfg oder Projekt1.cfg
Der Fehler war sofar schon in Delphi 5 drin. Ich habe das neulich Borland gemeldet:
Zitat:

Hello,
i want to report a bug in dcc32.exe.

If you want to compile a project on drive b:, the Params /N and /LN are not
working.

Param /E and /LE are working fine.

Example:
1. Make directorys in c:\temp
-c:\temp\test
-c:\temp\test\gui
-c:\temp\test\dcc
2. Install drive b: (subst b: c:\temp)
3. Create new project (and place a TButton and/or TEdit on it)
4. Go to menu-project-options -> Directories/Conditionals
4. Edit Output directory to "b:\test\gui"
5. Edit Unit output directory to "b:\test\gui"
6. Press ok
7. Save project to b:\test\
8. Compile
9. In b:\test\gui you find *.dcu and *.exe
10. Ok, this works fine

11. Go to shell ([start] run -> cmd.exe)
12. Go to b:\test (cd /d b:\test)
13. Compile project with dcc32.exe
dcc32 -Eb:\test\dcc -Nb:\test\dcc -Uc:\programme\borland\bds\3.0\lib
project1.dpr
(for "c:\programme\borland\bds\3.0\lib" you type the location of your
Delphi9 install + \lib / for "project1.dpr" you type your project filename)
14. In b:\test\dcc is only the *.exe file.
The *.dcu files are in b:\test
15. -> /N and /LN are not working on b:

On every drive c:, d: , e: , ..., z: it works fine.

-N and -LN in project1.cfg is also not working.
-N and -LN in $(BDS)\bin\dcc32.cfg is also not working.

I tested this today in Delphi 7 -> the bug is in there too!!!

Sorry for my bad English, I'm German.

Kind regards
Borland wird den Fehler aber beheben:
Zitat:

I see those same results here and I see it when a driver letter different
from B: is specified for the virtual drive.
I have logged the issue as #204475.
Thanks the report.

mschaefer 17. Aug 2004 11:25

Re: Eigene Compiler-Oberfläche
 
Moin, moin,

also auch wenn ich am Anfang die IDE - Idee etwas skeptisch gesehen habe,
gefällt die mir zunemends besser.

Bei mir läuft die Package-Compilation über den DCC32. Das hat den Vorteil,
dass man nicht immer die IDE und das aktuelle Projekt verlassen muss,
falls Änderungen am einer Komponente gemacht wurden.

Was mich noch interessieren würde ist ob rlink ebenfalls auf die cfg-Datei
Zugreift oder ob dies nun eine reine Kommandozeilenübergabe vom dcc32 aus ist.

Grüße // Martin

maximov 17. Aug 2004 11:43

Re: Eigene Compiler-Oberfläche
 
Zitat:

Zitat von mschaefer
...
Bei mir läuft die Package-Compilation über den DCC32. Das hat den Vorteil,
dass man nicht immer die IDE und das aktuelle Projekt verlassen muss,
falls Änderungen am einer Komponente gemacht wurden.
...

Dafür hat man doch die projekt-gruppe, wo man mehrere projekte, packages, dlls parallel oder gleichzeitig compilieren benutzen kann :wink:

mschaefer 17. Aug 2004 12:45

Re: Eigene Compiler-Oberfläche
 
Hallo maximov,

Ja, Du hast schon recht !
Man kann das gut über die Projektgruppe lösen. So eine Variante
hatte ich auch lange Zeit laufen. Die DCC-Variante gefällt mir
da so das aktuelle Delphi-Projekt nicht verlassen muß. Ausserdem
kann ich so von der Compilation bis zur Setuperstelllung per Batch-
datei fahren und das spart erheblich Zeit und nur so wird das rentabel...

Viele Grüße // Martin

MaBuSE 17. Aug 2004 12:51

Re: Eigene Compiler-Oberfläche
 
Zitat:

Zitat von mschaefer
Man kann das gut über die Projektgruppe lösen. So eine Variante hatte ich auch lange Zeit laufen. Die DCC-Variante gefällt mir
da so das aktuelle Delphi-Projekt nicht verlassen muß. Ausserdem
kann ich so von der Compilation bis zur Setuperstelllung per Batch-
datei fahren und das spart erheblich Zeit und nur so wird das rentabel...

Die Projektgruppe (*.bpg) ist doch "nur" eine Make Datei.

Diese kann doch auch von der Kommandozeile aufgerufen werden

$(DELPHI)\bin\make.exe

Mit -? gibts Hilfe

unter http://www.dummzeuch.de/delphi/delphi_make/deutsch.html gibts noch mehr zu lesen...

Viel Spaß

mschaefer 17. Aug 2004 12:59

Re: Eigene Compiler-Oberfläche
 
Moin, Uhps,

Das ist ja genial, denn so kann ich die Projektgruppe in der IDE visuell aufbauen, umbauen,
wie ich sie gerade brauche und kann gleichzeitig mit Batch das recompilieren erreichen. Klasse !

Grüße // Martin

MaBuSE 17. Aug 2004 13:05

Re: Eigene Compiler-Oberfläche
 
Zitat:

Zitat von mschaefer
Das ist ja genial, denn so kann ich die Projektgruppe in der IDE visuell aufbauen, umbauen,
wie ich sie gerade brauche und kann gleichzeitig mit Batch das recompilieren erreichen. Klasse !

Freut mich, wenn ich helfen konnte :mrgreen:

btw
Die project1.cfg, project2.cfg werden auch via makefile von dcc32.exe berücksichtigt.

Wenn kein Projektname.cfg vorhanden ist, schaut dcc32.exe nach ob eine
$(DELPHI)\bin\dcc32.cfg Datei existiert und verwendet diese.

Wenn es diese Datei auch nicht gibt, dann verwendet dcc32.exe die Default-Einstellungen

Die Komandozeilenoprionen z.B. -N oder -LN sind "stärker" als die Einstellungen im *.cfg File.

hth

MaBuSE 17. Aug 2004 13:08

Re: Eigene Compiler-Oberfläche
 
Da fällt mir noch was ein ;-)

Wenn Du die Projektgruppe.bpg in makefile umbennenst, dann braucht Du nur make aufzurufen (ohne Parameter)

make.exe läd per default eine Datei namens "makefile"

[edit]
Daher auch folgende Fehlermeldung bei einem Aufruf von make ohne Parameter wenn keine Datei namens "makefile" existiert:
Code:
C:\Programme\Borland\Delphi7\Bin>make
MAKE Version 5.2  Copyright (c) 1987, 1998 Inprise Corp.
Fatal: Unable to open makefile
[/edit]

hth

mschaefer 17. Aug 2004 13:16

Re: Eigene Compiler-Oberfläche
 
Hallo MaBuSE

Ja, das geht! Denke aber auch das es kein Problem ist eine Batch mit "compile %1" Eingabeparameter zu bauen. Dann kann man zum Beispiel mit Inno-Setup gleich das Setupscript
per batch anhängen...


[ebenfalls edit]

an dem Problem bin wohl schonmal am "make" gescheitert. Da habe allderdings mit CBuilder
gearbeitet und da habe ich den Eindruck gehabt, das dies alles eine recht "wackelige"
Konstruktion ist.

[/ebenfalls edit]



Grüße // Martin


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:26 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