Proiect de compilare fișier Bat

bat proiect de compilare fișier

Încerc să compilez un proiect folosind linia de comandă, nu înțeleg cum să o fac, chiar trebuie să șterg toate directoarele cu componente manual. Modul în care proiectul este compilat în IDE aparent folosește fișierul * .cfg # xA0; în directorul de proiect, dar cum?







Ketmar, îmi amintesc, l-am lăudat doar prin lucrările MakeFile.

setați DELPHI = C: \ Program Files \ Borland \ Delphi7

set PATHCOMMON = „C: \ Program Files \ EurekaLog 5 \ Delphi7; .ELPHI% \ Lib; .ELPHI% \ Bin; .ELPHI% \ Imports; .ELPHI% \ Projects \ BPL; C: \ Program Files \ PostgresDAC \; E: \ 01_Common \ DBEngine; E: \ 01_Common \ DBEngine \ pgsql; E: \ 01_Commo n \ DBEngine \ pgsql \ UpdateSQL; C: \ program Files \ MySQLDAC \; E :. \ 01_Common \ QuickImport ;; XVCL% \ ExpressScript Motorul \ Sources; .XVCL% \ Innerfuse Pascal Script \ Sources; .XVCL% \ ExpressWeb Framework \ Sources; .XVCL% \ ExpressMemData \ Surse; .XVCL% \ ExpressDBTree Suite \ Sources; .XVCL% \ ExpressPrinting System \ surse;. XVCL% \ ExpressSpreadSheet \ Surse; E: \ 1_FastReport \ LibD7; E: \ 01_Common \ Alte; E: \ 01_Commo n \ SysPack "

"C: \ Program Files \ Borland \ Delphi7 \ Bin \ dcc32.exe" -B -GD -CG - $ A8 - $ B- - $ C + - $ D - $ E - $ F- - $ G + - $ H + - $ I + - $ J- - $ K- - $ L - $ M - $ N + - $ O + - $ P + - $ Q- - $ R- - $ S - $ T - $ U- - $ V + - $ W- - $ X + - $ YD - $ Z1-N "_DCU" -U% PATHCOMMON% D "EUREKALOG; EUREKALOG_VER5; RELEASE"

Este groaznic. Am făcut mai ușor, alerg după construirea unui grup de proiecte batnikok, care copiază totul unde ar trebui să fie și înregistrează tot ce este necesar.

cel mai interesant, în KDE în KDevelop în cadrul FreeBSD 6.0 există o fereastră rece pentru setările compilatorului fpc și mplayer-ul nu funcționează. ) compilatorul a vrut să scuipe pe ele. )

Apropo, puteți scrie un expert pentru IDE, shob a executat fișierul batch corect după compilație :) Aici este 15 minute.


> pasha_golub

Mulțumesc, acum este aproape clar

> Ega23

Aceeași soluție, desigur, puțin mai ușoară și mai puțin atractivă.

> Joe

Dar și asta mi-a venit mai întâi în cap. Dar nu am scris niciodată un expert, așa că nu știu cât va dura.


> Apropo, puteți scrie un expert pentru IDE, Schaub a făcut bine
> fișiere batch după compilare :) Aici este 15 minute.

M-aș fi uitat cu plăcere la codul unui astfel de expert.







> Dar și asta mi-a venit mai întâi în cap. Dar niciodată
> a scris experții, așa că nu știu cât de mult timp
> va lua.

Iată achiziția, a distrus unul dintre vechii lui experți, poți să ștergi tot ce poți aici, pe care fantezia o va permite :)

interfață
folosește Windows, ExptIntf, ToolIntf;

# xA0; TCompileTimeNotifier = clasă (TIAddInNotifier)
# xA0; public
# xA0; #XA0; procedura NotificareNetificare (NotifyCode: TFileNotification;
# xA0; # xA0; # xA0; const Numele de fișier: șir; var Anulează: Boolean); suprascrie;
# xA0; # xA0; procedura EventNotification (NotifyCode: TEventNotification;
# xA0; # xA0; # xA0; var Anulează: Boolean); suprascrie;
# xA0; sfârșitul;

punerea în aplicare
utilizează SysUtils, DateUtils;

var
# xA0; Notificatorul: TCompileTimeNotifier;
# xA0; LastCompileDt: TDateTime = 0;

registru de proceduri; # xA0; # xA0; # xA0; # xA0; # xA0; # xA0; # xA0; # xA0; # xA0;
începe
# xA0; //
se încheie;

procedura TCompileTimeNotifier.EventNotification (
# xA0; NotifyCode: TEventNotification; var Anulează: Boolean);
var
# xA0; Fv: TextFile;
# xA0; Fn: șir;
începe
# xA0; dacă ToolServices.GetProjectName = "" atunci
# xA0; # xA0; Ieșire;

# xA0; # xA0; caz NotifyCode din
# xA0; # xA0; # xA0; enBeforeCompile:
# xA0; # xA0; # xA0; începeți
# xA0; # xA0; # xA0; # xA0; //
# xA0; # xA0; # xA0; sfârșitul;
# xA0; # xA0; # xA0; enAfterCompile:
# xA0; # xA0; # xA0; începeți
# xA0; # xA0; # xA0; # xA0; //
# xA0; # xA0; # xA0; sfârșitul;
# xA0; # xA0; sfârșitul;
se încheie;

procedura TCompileTimeNotifier.FileNotification (
# xA0; NotifyCode: TFileNotificare; const Numele de fișier: string;
# xA0; var Anulează: Boolean);
începe
se încheie;

iniţializarea
# xA0; Notificator: = TCompileTimeNotifier.Create;
# xA0; ToolServices.AddNotifierEx (notificator);

finalizare
# xA0; ToolServices.RemoveNotifier (notificator);
# xA0; Notifier.Free;

Este necesar, desigur, să o puneți într-un pachet și să îl instalați în IDE.

Pe "superfluu", nu acordați atenție, rupeți "live" :)

TIAddInNotifier - unde o pot vedea?


> Pot folosi aceste setări când rulez dcc32?

În teorie, poți. Dar nu l-am găsit. - (


> În teorie, poți. Dar nu l-am găsit. - (


> Ega23

Da, aș dori să folosesc ca parametru ceva care este scris în cfg și ca PATHCOMMON să utilizeze valoarea celei mai cunoscute chei din registru și ar fi perfectă

Crearea unui program prog.pas astfel de conținut

var
# xA0; I. matrice de Integer;
începe
# xA0; SetLength (I, 1);
# xA0; I [6]: = 10;
# xA0; writeln (I [6]);
end.

lângă program, în același director pus aici este un astfel de compiler.bat

cd% cd%
dcc32 prog.pas

La executarea programului, acesta compilează, începe, produce 10.

Mai mult, sub impresia liniilor „Când DCC32 începe, se pare pentru DCC32.CFG în directorul curent. În cazul în care ISN fișierul“ T găsit acolo, DCC32 arată în directorul în care DCC32.EXE locuiește.“. Am o cutie în același director un fișier dcc32.cfg aici este conținutul aici

După aceea, rulez compile.bat, rulez prog.exe, programul jură, așa cum v-ați aștepta.

Nu m-am săturat mai departe până nu știu capcanele, dar cred că în această direcție poți să scapi ceva util.

Memorie: 0.77 MB
Durată: 0,076 secunde







Articole similare

Trimiteți-le prietenilor: