Autor Téma: Chyba kompilátora  (Přečteno 787 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6033
  • Karma: 44
    • Verze Delphi: W10 + D11
Chyba kompilátora
« kdy: 02-10-2021, 21:38:13 »
Stretol sa niekto s takým prípadom?
Na formulári je položený komponent, ale nie je citovaný v *.pas
Chyba sa prejavovala tak, že ak som dal kompiláciu, tak mi to skoro vždy skončilo na internej chybe.
Ale keď som dal build, tak to vždy zbehlo!!!
Chybu som objavil len náhodou. Neboli k tomu žiadne indície. A FixInsigth ešte pre 11 nie je. Neviem, či by mi to ukázal.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2982
  • Karma: 108
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:Chyba kompilátora
« Odpověď #1 kdy: 03-10-2021, 07:56:59 »
Podle mne to spolu nesouvisí, kompilátor o DFM v podstate neví. Co to bylo za chybu - jako kod chyby?
Embarcadero MVP - Czech republic

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6033
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Chyba kompilátora
« Odpověď #2 kdy: 03-10-2021, 10:08:23 »
Hm, teraz som zapoznákoval jeden komponent. Pri kompilácii som dostal: [dcc32 Error] prnAddress.pas(84): E2003 Undeclared identifier: 'ofchgrNewPage_ptNewPage'. Tak som si to predstavoval.
Takže do pôvodného stavu sa neviem dostať. Neviem ako sa mi to podarilo. Kód chyby samozrejme neviem. Do DFM zásadne nechodím.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3291
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Chyba kompilátora
« Odpověď #3 kdy: 03-10-2021, 11:56:01 »
Klasika ;-)

A nevzniklo to napr. tak, ze jsi omylem z .pas vyhodil tu deklaraci komponenty, nedal jsi save a zkousel to prekladat nebo tak neco?

Doporucil bych pri vyskytu takove duchariny chcipnout Delphi a z VCS spustit command Check for modifications, abys videl, co jsi kde posr*l...

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6033
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Chyba kompilátora
« Odpověď #4 kdy: 03-10-2021, 13:25:10 »
Ide o niečo také. Premenovával som komponenty. Samozrejme, že som urobil pár kiksov.
Pri jednom(?) formulári som dostával oznam o neexistujúcom komponente a či chcem odstrániť deklaráciu. Časom som deklaráciu odstránil. Lebo mi to už vadilo.
.
Čo vlastne znamená VCS? Ja som našiel iba "Skratka učebného predmetu Výroba čistých a špeciálnych chemikálií" ;D  Často sa to objavuje a ja som si len nepriamo vydedukoval: Visual C Studio. Ja okrem Delphi nemám nič iné.
.
Už to mám v poriadku. Len som nevedel prečo ma na to kompilátor neupozornil.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Online Jirka

  • Hrdina
  • ****
  • Příspěvků: 436
  • Karma: 9
    • Verze Delphi: XE2
Re:Chyba kompilátora
« Odpověď #5 kdy: 03-10-2021, 14:20:47 »

Čo vlastne znamená VCS? Ja som našiel iba "Skratka učebného predmetu Výroba čistých a špeciálnych chemikálií" ;D  Často sa to objavuje a ja som si len nepriamo vydedukoval: Visual C Studio. Ja okrem Delphi nemám nič iné.
https://delphi.cz/post/spravce-zdrojaku.aspx

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6033
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Chyba kompilátora
« Odpověď #6 kdy: 03-10-2021, 14:39:19 »
Aha. Ja používam GIT. K tomu tam veľmi zmienka nie je, ale článok je starý 10 rokov. Na porovnávanie súborov som si nainštaloval Merge (Win?). No netuším, či som ho niekedy v praxi použil. To skôr použijem PSPad.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2982
  • Karma: 108
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:Chyba kompilátora
« Odpověď #7 kdy: 03-10-2021, 19:05:54 »
Aha. Ja používam GIT. K tomu tam veľmi zmienka nie je, ale článok je starý 10 rokov. Na porovnávanie súborov som si nainštaloval Merge (Win?). No netuším, či som ho niekedy v praxi použil. To skôr použijem PSPad.

On tim myslel, ze se podivas na zmeny v pas a dfm proti posledni verzi.
Embarcadero MVP - Czech republic

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6033
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Chyba kompilátora
« Odpověď #8 kdy: 03-10-2021, 19:18:41 »
Citace
On tim myslel, ze se podivas na zmeny v pas a dfm proti posledni verzi.
:)  Ale ja neviem kedy presne a kde som to sekol. To by bol beh na dlhú trať.
Ďakujem všetkým za príspevky.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3291
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Chyba kompilátora
« Odpověď #9 kdy: 03-10-2021, 22:57:45 »
Ale ja neviem kedy presne a kde som to sekol. To by bol beh na dlhú trať.
VCS = Version Control Systems => pak ten VCS pouzivas nevhodnym zpusobem.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6033
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Chyba kompilátora
« Odpověď #10 kdy: 04-10-2021, 09:16:57 »
Ja ho používam v podstate ako lepší pakovací program. Občas si skopírujem nejakú staršiu verziu súboru. To je tak všetko ;)  Viem, že toho ponúka podstatne viac.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6033
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Chyba kompilátora
« Odpověď #11 kdy: 04-10-2021, 16:32:27 »
Aj teraz mi vyhadzuje chybu. Aj keď podstatne menej.
Citace
[dcc32 Fatal Error] Room.pas(77): F2084 Internal Error: AV112E241E(11270000)-R000001CC-0
Kód: Delphi [Vybrat]
  1.     constructor Create(const AParentPanel, AEditPanel: TjstAdvPanel; const ADataSource: TDataSource); override;
  2.  
  3.     constructor CreateForm(const AForm: TBasalForm; const ADataSource: TDataSource; AParentPanel, AEditPanel:
  4.       TjstAdvPanel);
  5.     destructor Destroy; override;
  6.     procedure CancelRecord; override;
  7.     function DataOK: Boolean; override;
  8.     procedure DeleteRecord(const AAutoCommit: Boolean); override;
  9.     procedure EditRecord; override;
  10.     procedure FillcbbAcronym;
  11.     procedure FillVst; override;
  12.     procedure GetTableData(const ANodeData: PTableData); override;
  13.     function InsertRecord: Boolean; override;
  14.     procedure SetCtrls; override;
  15.     property oSideTree: TVstAsTree  read FoSideTree write FoSideTree;
  16.   end;
  17.  
  18. implementation
  19.  
  20. uses
  21.   GlobalVar, FDFunction, BasicFunctions, subRoom;
  22.  
  23. { TFlatArea }
  24.  
  25. constructor TFlatArea.Create(const AParentPanel, AEditPanel: TjstAdvPanel; const ADataSource: TDataSource);
Je to na poslednom riadku (25)
Našiel som:
.
Toto chybové hlásenie naznačuje, že kompilátor zaznamenal inú chybu ako chybu syntaxe, ktorú nemôže úspešne spracovať. Niekedy je to chyba, pretože spotreba pamäte v čase kompilácie sa blíži k limitu IDE počas zostavovania. V tomto prípade je riešením nastaviť Projekt> Možnosti ...> Kompilátor Delphi > Externe použiť MSBuild na kompiláciu na hodnotu true.Poznámka : Voľba „Použiť externe MSBuild na kompiláciu“ na stránke kompilátora Delphi umožňuje postaviť projekt mimo IDE pomocou MSBuild .Informácie za "Internou chybou" obsahujú jeden alebo viac znakov, za ktorými bezprostredne nasleduje číslo, ktoré označuje číslo súboru a riadka v samotnom kompilátore, kde došlo k chybe. Aj keď vám tieto informácie nemusia pomôcť, môžu nám (Embarcadero) pomôcť pri pátraní po probléme, ak a kedy chybu nahlásite. Nezabudnite si tieto informácie zapísať a zahrnúť ich do popisu vnútornej chyby.
« Poslední změna: 04-10-2021, 16:36:17 od Stanislav Hruška »
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Slappy

  • Hrdina
  • ****
  • Příspěvků: 251
  • Karma: 12
  • Slappy
    • Verze Delphi: 11 Alexandria + Vsetky :)
    • unSigned
Re:Chyba kompilátora
« Odpověď #12 kdy: 04-10-2021, 18:36:23 »
Takychto internal errorov mam v podstate kopu kazdy den.

Bohuzial je to problem IDE a nic ine ako restart IDE nepomoze.

Pri mensich projektoch by este pomohlo zavriet cely projekt a otvorit projektnanovo, ale niekedy je restart IDE rychlejsi...
Moje projekty: http://www.unsigned.sk Tvorba cool dizajnovych instalatorov v NSIS a Inno Setup. Rozsirenie pre Visual Studio a RAD Studio pre tvorbu NSIS a Inno Setup instalatorov.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6033
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Chyba kompilátora
« Odpověď #13 kdy: 04-10-2021, 21:39:53 »
Čiastočne mi pomohla prvá rada: vymazať dcu. Mne stačí pustiť build a idem ďalej.
Písali tam aj o použití MSBuild. Ja do toho nejdem :)
Je zaujímavé, že som to predtým nemal.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2982
  • Karma: 108
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:Chyba kompilátora
« Odpověď #14 kdy: 04-10-2021, 23:45:04 »
F2084 Internal Error: AV112E241E(11270000)-R000001CC-0

Znamena Access Violation na te adrese, a ta dalsi je faze kompilace - bohuzel ted nemuzu najit vyklad a to jsem ho mel ulozen. Veril jsem ze posledni path na 10.4.2 tento problém (způsobený budto kruhovými referencemi nebo pripletenymi jinymi dcu v ceste) vyresil.

Mas 10.4.2 nebo D11? V pripade prvního zkontroluj prosim verzi "c:\Program Files (x86)\Embarcadero\Studio\21.0\bin\dcc32.exe", po aplikaci patche by měla být 27.0.41310.5003 nebo novější.
Embarcadero MVP - Czech republic

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6033
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Chyba kompilátora
« Odpověď #15 kdy: 05-10-2021, 08:58:57 »
Mám D11. Už som túto informáciu opravil.
Kruhové referencie nemám. To by mi hlásilo. Mám len jediný projekt a všetko mám v jeho adresári. A pripletené dcu takisto nemám.
Keď zoberieme do úvahy Slappiho príspevok, tak asi nemám žiadne možnosti s tým niečo urobiť. Keď s tým on nič neurobil, tak ja duplom.
.
Až teraz som si uvedomil, že to čo som hľadal a písal, patrilo k chybám typu X123. Teraz to je niečo iné

W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3291
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Chyba kompilátora
« Odpověď #16 kdy: 05-10-2021, 09:44:56 »
Kruhové referencie nemám. To by mi hlásilo.
Ano, ale to plati jen pro zavislosti mezi deklaracemi - ty neni mozne vyresit.

Ale jestlize se ti opakovane objevuje stav, kdy prosty preklad zmenenych unit nedokaze prelozit a sestavit vysledny .exe, ale build to vzdy vyresi bez problemu, tak to znamena, ze tam mas komplikovane cyklicke vazby mezi unit (v implementaci) a je to priznakem ne prilis cisteho navrhu aplikace.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6033
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Chyba kompilátora
« Odpověď #17 kdy: 05-10-2021, 11:19:05 »
Citace
Ano, ale to plati jen pro zavislosti mezi deklaracemi - ty neni mozne vyresit.
Tejto vete nerozumiem. Prvá a druhá časť si z môjho pohľadu logicky protirečia. Neviem čo máš na mysli "zavislosti mezi deklaracemi". Predpokladám vlastné triedy.
Kompilácia mi najprv niekoľko krát normálne zbehne. Potom zahlási AV. Urobím  build a tak sa to opakuje.
Preverím to čo si napísal.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3291
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Chyba kompilátora
« Odpověď #18 kdy: 05-10-2021, 21:13:20 »
Prvá a druhá časť si z môjho pohľadu logicky protirečia.
Ne, jedna se o zcela odlisne zalezitosti. Prvni je deklarace (public) typu, ktera nemuze byt zavisla sama na sobe. To jsou ty cyklicke reference, se kterymi te vykope prekladac. Tyka se sekce Interface v unitach.

Druha se vztahuje na pouziti typu tj. cyklicke zavislosti pres implementation. Typicky priklad mizerneho navrhu je, kdyz se v ProjectA.MainFormA odkazujes na FormA (to je OK) a zaroven v ProjectA.FormA se odkazujes na MainFormA a to je spatne.
Samozrejme se muze jednat o dlouhe cyklicke vazby, ty delavali vzdycky prekladaci nejake problemy.

Ale treba tam nic takoveho nemas a jen ten novy Delphi je zase o trochu vic fucked-up, nez ten predchozi, jak psal Slappy. Me posledni Tokyo delavalo jen to, ze po nejake dobe prace s nim vyhodilo AV a musel jsem chcipnout Delphi, nekdy i restartovat PC.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6033
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Chyba kompilátora
« Odpověď #19 kdy: 05-10-2021, 21:34:39 »
Vďaka za vysvetlenie. O týchto cyklických referenciách Interface  a implementation viem. Prekladač ma na to vždy upozorní. No mám naozaj jednoduché závislosti.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2982
  • Karma: 108
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:Chyba kompilátora
« Odpověď #20 kdy: 06-10-2021, 06:58:33 »
Takychto internal errorov mam v podstate kopu kazdy den.

Bohuzial je to problem IDE a nic ine ako restart IDE nepomoze.

Pri mensich projektoch by este pomohlo zavriet cely projekt a otvorit projektnanovo, ale niekedy je restart IDE rychlejsi...


@Slappy - to mluvis o poslednich Delphi, nebo o tom jak to prekladas ve vsech Delphi co podporujes? Neprijde mi ze by s posledni verzi (resp. 10.4.2 + patch) se ty chyby projevovali vyjma u Standy. Vim ze se k vuli tomu aby se ten problem s kruhouvou referenci (pry vznikl nekdy kolem XE2) odstranil hledalo neco kde se to simulovat a byl kolem toho fakt velky srumec, tak mne zajima zda to co pises se tyka i posledni verze.
Embarcadero MVP - Czech republic

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6033
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Chyba kompilátora
« Odpověď #21 kdy: 06-10-2021, 08:21:30 »
Ja som sa bavil iba o D11. Inú verziu nemám inštalovanú.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Slappy

  • Hrdina
  • ****
  • Příspěvků: 251
  • Karma: 12
  • Slappy
    • Verze Delphi: 11 Alexandria + Vsetky :)
    • unSigned
Re:Chyba kompilátora
« Odpověď #22 kdy: 06-10-2021, 08:42:45 »
@Slappy - to mluvis o poslednich Delphi, nebo o tom jak to prekladas ve vsech Delphi co podporujes? Neprijde mi ze by s posledni verzi (resp. 10.4.2 + patch) se ty chyby projevovali vyjma u Standy. Vim ze se k vuli tomu aby se ten problem s kruhouvou referenci (pry vznikl nekdy kolem XE2) odstranil hledalo neco kde se to simulovat a byl kolem toho fakt velky srumec, tak mne zajima zda to co pises se tyka i posledni verze.

@Radek, Robi to vo vsetkych verziach, aj v starych aj v novych aj v 11. Mam podozrenie, ze to sposobuje pouzitie OpenToolsAPI.pas, ale tazko to nejak overit, neda sa ten projekt nejak rozumne osekat na reprodukovatelny example.

Jednoducho ked nacitam projekt nanovo tak IDE kompiluje bez chyby a po nejakom case zacne vznikat Internal Error. Je potrebne dat zavriet projekt a nacitat nanovo, Clean + Build a uz to zase urcitu dobu funguje.


Inak som mal vzdy problem ked som mal nainstalovanych viacero IDE (napr XE + XE2+XE3) na 1 PC. Myslel som, ze ci to nesuvisi s tym, ale Delphi 11 mam nainstalovane samostatne (Win 10) a prejavuje sa to aj tam.


Nakoniec som to vyriesil tak, ze programujem uz len v D11 a jednotlive verzie vzdy len prekompilujem (XE, XE2, XE3...). Samozrejme nemozem pouzivat nove featurky, pretoze tie by nesli v starsich verzia Delphi.
Ale to je uz trochu OT...
Moje projekty: http://www.unsigned.sk Tvorba cool dizajnovych instalatorov v NSIS a Inno Setup. Rozsirenie pre Visual Studio a RAD Studio pre tvorbu NSIS a Inno Setup instalatorov.

Offline Daniel_Andrascik

  • Guru
  • *****
  • Příspěvků: 502
  • Karma: 20
    • Verze Delphi: D2007, D10.4
Re:Chyba kompilátora
« Odpověď #23 kdy: 09-10-2021, 21:27:06 »

@Slappy - to mluvis o poslednich Delphi, nebo o tom jak to prekladas ve vsech Delphi co podporujes? Neprijde mi ze by s posledni verzi (resp. 10.4.2 + patch) se ty chyby projevovali vyjma u Standy. Vim ze se k vuli tomu aby se ten problem s kruhouvou referenci (pry vznikl nekdy kolem XE2) odstranil hledalo neco kde se to simulovat a byl kolem toho fakt velky srumec, tak mne zajima zda to co pises se tyka i posledni verze.

Akurat posledne dva dni dostavam sem tam internal errory na D10.4.2+patchs (asi prvykrat odkedy pouzivam D10.4.2 ale ja nepracujem v delphi denne, len obcas a moje projekty nie su moc velke) ale v podstate dost masivne refaktorujem jeden moj stary projekt s tym ze vyhadzujem niektore obsolete "third party libraries" a nahradzujem novymi dost velkymi ako napriklad mORMot a podobne. A kym to vsetko ucesem, tak sa to asi trocha kuse...