Skocz do zawartości

[Delphi/ Pascal] -programowe kompilowanie modułów, projektu


Integer

Polecane posty

Powiązanie merytoryczne z tematem http://forum.4programmers.net/viewtopic.ph...530012#id530012

 

Zapewne ktoś powie, że to już gdzieś było ale za każdym razem jak wpisuje w google "jak programowo kompilować w Pascalu" albo "jak programowo uruchomić kompilowanie w Delphi" wyskakuje "siano".

A kompilować to ja się nauczyłem daaawnooo temu ;).

Dotarłem do stron w stylu .. Shellexecute pewnie ciepło...

 

Pytanie:

 

1. Jak wywołać kompilacje Modułów, bibliotek i Exe Turbo Pascala 7.0 za pomocą polecenia w Pascalu

i w Delphi 2007 (ja mam akurat Delphi 2007 może jest niewielka różnica w kodzie ale dochodzą dodatkowe pliki przy kompilacji).

 

2. Jak wywołać kompilację poszczególnych składowych projektu napisanego w Delphi 2007 z poziomu

Delphi i (do kompletu tematu) z Turbo Pascala.

 

Wiem jak wywołać program przez inny program. Ale to nie wystarczy

Link do komentarza
Udostępnij na innych stronach

CYTAT(Integer @ sob, 28 mar 2009 - 18:07) 1. Jak wywołać kompilacje Modułów, bibliotek i Exe Turbo Pascala 7.0 za pomocą polecenia w Pascalu

i w Delphi 2007 (ja mam akurat Delphi 2007 może jest niewielka różnica w kodzie ale dochodzą dodatkowe pliki przy kompilacji).

 

 

KODdcc32.exe --help

 

2. Jak wywołać kompilację poszczególnych składowych projektu napisanego w Delphi 2007 z poziomu

Delphi i (do kompletu tematu) z Turbo Pascala.

 

Jak wyzej.

Obrazek
Link do komentarza
Udostępnij na innych stronach

Znalazłem w pomocy...

Syntax: dcc32 [options] filename [options]

 

-A= = Set unit alians

-B = build all units

-CC = Console target

-CG = GUI target

-D = define conditionals

-E = EXE/DLL output directory

-F = Find error

...

 

i na podstawie http://4programmers.net/Delphi[...]i_uruchomi%C4%87_inny_program_

 

a po wpisaniu poniższego Delphi 2007 niestety nie skompilowało mi projektu do exe-ka.

Podpowie ktoś gdzie jest błąd?

 

 

procedure TForm1.KompilujClick(Sender: TObject);

var SOptions: String;

 

begin

 

//GetDir(0, S);

//ScExe:= 'D:\Del_2007\CodeGear\RAD Studio\5.0\bin\dcc32.exe';

 

SOptions:=

'-B ' +

'C:\Documents and Settings\Rafi\Pulpit\Auto Kompilacja\kompiluj\Project1.dproj'

+

'-E';

 

ShellExecute(

Handle,

'open',

'D:\Del_2007\CodeGear\RAD Studio\5.0\bin\dcc32.exe',

PChar(SOptions),

'',

SW_SHOWNORMAL

);

 

 

end;

Link do komentarza
Udostępnij na innych stronach

Nie bardzo mogę, za bardzo się napaliłem ;)

 

A poza tym za długo nad tym myślałem i za dużo materiałów nazbierałem, żeby sobie odpuścić.

 

1. Prowadzę pracę nad modułem do interpretacji emocjonalnej

http://forum.unit1.pl/index.php?showtopic=2813

2. jednocześnie mam materiały na temat rozbioru logicznego i gramatycznego zdania

3. po tym mając emocje i zrozumienie zdania popracuje nad "JA" komputera i zapamiętywaniem faktów

4. potem moduł - zapamiętywanie obiektów (słów, rzeczy, czynności, znaków np. matematycznych)

- tu będzie trochę trudniej i sporo tego dlatego muszę nauczyć program aby zczytywał teksty

i selekcjonował co ma w swoich zasobach a czego nie ...

baardzo pomocna by tu była samokompilacja bo samoro zszeżanie kodu przez analizę i porównywanie

znacznie przyspieszyło by pracę, nie chcę kupować książek,

ale jak będzie trzeba tylko ... dobrą książkę ciężko znaleść

 

5. a potem ... może nie wszystko na raz

Link do komentarza
Udostępnij na innych stronach

jak wpisałem

 

"D:\Del_2007\CodeGear\RAD Studio\5.0\bin\dcc32.exe"

-B "C:\Documents and Settings\Rafi\Pulpit\Auto Kompilacja\kompiluj\Project1.dpr"

"-E"

 

 

dla Project1.dpr w jednej linii oczywiście to skompilowało mi "Unit1.dcu"

i wyskoczył błąd:

 

Fatal: F2039 Could nod create output file '\Project1.exe'

 

po wpisaniu:

 

D:\Del_2007\CodeGear\RAD Studio\5.0\bin\dcc32.exe"

-B "C:\Documents and Settings\Rafi\Pulpit\Auto Kompilacja\kompiluj\Project1.dproj"

"-E"

 

bo taki jest plik uruchomieniowy dla projektu Delphi 2007 w ogóle nie skompilowało posypała się lista errorów, na wszelki wypadek skompilowałem projekt "z myszy" ale oprócz formy nie ma nic, więc błędów na pewno nie ma.

 

nie mniej jednak "Unit1.dcu" jest. Ma Ktoś jakiś pomysł?

Link do komentarza
Udostępnij na innych stronach

Coś działa ale nie do konca.

 

Plik "1.BAT"

 

 

[i]
CD\
cd "C:\Documents and Settings\Rafi\Pulpit\Auto Kompilacja\kompiluj"

"D:\Del_2007\CodeGear\RAD Studio\5.0\bin\dcc32.exe" -B "C:\Documents and Settings\Rafi\Pulpit\Auto Kompilacja\kompiluj\Project1.dpr"

"D:\Del_2007\CodeGear\RAD Studio\5.0\bin\dcc32.exe" "-E<C:\Documents and Settings\Rafi\Pulpit\Auto Kompilacja\kompiluj>"
[/i]

 

 

Pozdrawiam.

Link do komentarza
Udostępnij na innych stronach

Wkraczam.. <_>

 

Czytając te Twoje posty doszedłem do wniosku :), że chcesz by Twój program sam siebie kompilował :) i się rozwijał :D

To masz moje odpowiedzi:

- po 1 program który nawet by skompilował źródła siebie :) to nie wiem ale problemy będziesz miał z przełączaniem się pomiędzy exekami :D

- po 2 FASM - świetny assembler, potrafi skompilować samego siebie, czyli w Fasmie kompilujesz źródła fasma

- po 3 jeżeli chcesz bawić się w kompilacje "siebie" to prościej będzie pobawić Ci się w C++ lub Free Pascal i trybie konsolowym... bo rozumiem, program który ma się rozwijać i zawierać coraz to więcej miejsca to z komponentami sory ;P

- po 4 na 4programmers zaoferowali Ci dobre, wręcz idealne rozwiązanie... by EXE było jedno, w dodatku kompilowało kod... ale czego? DLL'ki i skompilowanej dllki używało... w sumie przez to masz tylko o 1 plik więcej.

- po 5 rozumiem, że program, który sam się rozwija :D musi w sobie w zasobach mieć swoje źródła lub mieć je gdzieś obok... , a co z tym się jeszcze dodatkowego wiąże musi w nie ingerować "inteligentnie" by czasem siebie nie zepsuć (a to jest o wiele gorsza, trudniejsza sprawa niż sama "ręczna" kompilacja)

 

Tak czy siak, życzę powodzenia i szybkich sukcesów...

Ale jak dla mnie to jest raczej... z filmów takich jak by połączenie "Kod dostępu" z "Ja robot" :) czyli hacker walący bezsensownie w klawisze kodzi wielką WIKI (Virtial Inteligence Kinetic Interactive - Wirtualna inteligęcja kinetyczna interaktywna)

A Ty właśnie starasz się napisać taką WIKI, która choć jest realna do napisania to nie w stylu tego hackera z bajki

 

Pozdrawiam.

Prawdziwy programista wiesza sie wraz ze swoim programem.

Link do komentarza
Udostępnij na innych stronach

To było wejście smoka no i bingo :)

 

1. jak do tego dojdę to zobaczymy, najwyżej będzie więcej niż 2 kopie, chodzi mi o to żeby Ciągle program był na topie.

 

2. Za stary jestem, żeby się przestawiać więc muszę sobie poradzić w tym co mam, w Delphi opracowuje szkielet - jak dobrze pójdzie to się sam zoptymalizuje do szybszego kodu, o ile mnie wcześniej żona nie wygoni z domu za zarwane noce ;).

 

3. Rozwój - będzie ciężko, ale może na którymś etapie wzbogacające kod o procedurki aktualizujące kompilator oraz przeszukujące sieć w poszukiwaniu opisów - taka symulacja uczenia się człowieka. Tu jednak podstawą jest zrozumienie tekstu - jak to (jeśli) przebrnę to jestem w domu.

Jeśli nie mam w zanadrzu fazę przejściową i zrobię z tego jakieś narzędzie.

 

4. No fakt o ile pierwsza wersja będzie bez DLL to przy następnych na pewno wykorzystam DLL z powodów opisanych w postach - tu podziękowania.

 

5. Sposób jest i prosty i złożony bo polega na stworzeniu programu potomnego i przetestowaniu go pod względem starych funkcji, oraz obserwacji czy spełnia założenia rozwoju. W momencie gdy następuje błąd kasowanie i tworzenie od nowa z uwzględnieniem historii błędów. Jeśli ok podmianka.

 

6. Wcześniej był StarTrek z kilkoma odcinkami podobnym stylu.

 

 

 

Pewnie że zdaję sobie sprawę że będzie ciężko, tym bardziej że zapewne całe firmy programistów siedzą nad podobnymi projektami. A i tu ograniczają się do wąskiego zakresu.

Ale zdaje sobie sprawę że nie będzie ciężko bo to skomplikowane tylko dlatego że bardzo czasochłonne - bo rozrysowałem sobie algorytm i nie jest wcale taki bee. Jedyne czego się boje to tego, że poginę w szczegółach.

 

 

Jak na razie mam niedokończony problem z kompilacja ;) więc tu proźba jakbyś miał w pamieci podręcznej jakieś wskazówki na temat "mojego" utykającego ShellExecute byłbym wdzięczny.

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...