Forum Delphi.cz

Delphi => Obecné => Téma založeno: Stanislav Hruška 02-10-2021, 21:38:13

Název: Chyba kompilátora
Přispěvatel: Stanislav Hruška 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.
Název: Re:Chyba kompilátora
Přispěvatel: Radek Červinka 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?
Název: Re:Chyba kompilátora
Přispěvatel: Stanislav Hruška 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.
Název: Re:Chyba kompilátora
Přispěvatel: pf1957 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...
Název: Re:Chyba kompilátora
Přispěvatel: Stanislav Hruška 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.
Název: Re:Chyba kompilátora
Přispěvatel: Jirka 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 (https://delphi.cz/post/spravce-zdrojaku.aspx)
Název: Re:Chyba kompilátora
Přispěvatel: Stanislav Hruška 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.
Název: Re:Chyba kompilátora
Přispěvatel: Radek Červinka 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.
Název: Re:Chyba kompilátora
Přispěvatel: Stanislav Hruška 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.
Název: Re:Chyba kompilátora
Přispěvatel: pf1957 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.
Název: Re:Chyba kompilátora
Přispěvatel: Stanislav Hruška 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.
Název: Re:Chyba kompilátora
Přispěvatel: Stanislav Hruška 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.
Název: Re:Chyba kompilátora
Přispěvatel: Slappy 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...
Název: Re:Chyba kompilátora
Přispěvatel: Stanislav Hruška 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.
Název: Re:Chyba kompilátora
Přispěvatel: Radek Červinka 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ší.
Název: Re:Chyba kompilátora
Přispěvatel: Stanislav Hruška 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é

Název: Re:Chyba kompilátora
Přispěvatel: pf1957 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.
Název: Re:Chyba kompilátora
Přispěvatel: Stanislav Hruška 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.
Název: Re:Chyba kompilátora
Přispěvatel: pf1957 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.
Název: Re:Chyba kompilátora
Přispěvatel: Stanislav Hruška 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.
Název: Re:Chyba kompilátora
Přispěvatel: Radek Červinka 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.
Název: Re:Chyba kompilátora
Přispěvatel: Stanislav Hruška 06-10-2021, 08:21:30
Ja som sa bavil iba o D11. Inú verziu nemám inštalovanú.
Název: Re:Chyba kompilátora
Přispěvatel: Slappy 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...
Název: Re:Chyba kompilátora
Přispěvatel: Daniel_Andrascik 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...