fatal error "unit uses usesitself"

3 отговора 106 прегледа
#1

fatal error "unit uses usesitself"

Pri opit da kompiliram poluchavam suobshtenie:

[fatal error] program or unit 'vvv' recursively uses itself

tova znam, che se poluchava ako imeto na unita e slozeno i uses na sushtia
unit. Samo che pri men niama takova neshto. Samo mi dava greshkata
i to bez da pokazva kude e, i spira. Tozi projekt veche ne moga da go kompiliram.
I niamam nikakva ideia kude e greshkata.

Отговор
в отговор на chovek #2

Re: fatal error "unit uses usesitself"

Не - не мисля, че някой би добавил самия модул в uses -а на интерфейсната част - даже и по невнимание - мисля че проблема е другаде - в кръстосаното използване на модули
1. Unit vvv1 - uses vvv2 в interface часта
2. Unit vvv2 - uses vvv1 в interface часта

Значи ако искаш кръстосано да ползваш два модула - vvv1 може да ползва vvv2 в implementation- същото важи и за vvv2

Най-добре премисли архитектурата си - т.е. кое къде точно дефинираш - и най-вече не слагай току така модули в интерфейс частта - забелязал съм че преместването на модул от интертфейс в имплементационната част даже може да спести малка част от размера на програмата!

---
Е т'ва е живот!

Редактирано от PhantomAS на

Отговор
в отговор на PhantomAS #3

zashto

kakuv e problema pri takova krustosvane, zashtoto probvah i napravuh narochno
taka no ne dava nikakvi problemi?

Отговор
в отговор на chovek #4

Re: zashto

Проблемът е, че за да ти компилира модул 1, трябва преди това да компилира модул 2, който се използва от модул 1, а за да компилира модул 2, трябва да компилира използвания от него модул 1...
А за това че не ти дава грешка - ами нещо не си направил както (не) трябва. Не можеш да имаш циклични uses-и в интерфейсната част на модулите...

Отговор