parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

Misha v.3 22.01.2015 23:51

при компиляции, если обнаруживается, что одноимённый класс уже существует, выдаётся ошибка. у ^use[] и ^process{} её можно отключить с помощью опций, но в подавляющем большинстве случаев надо не ошибку отключать, а делать так, чтобы до неё не доходило.

причина ошибки в том, что @USE и ^use[] при подключении файлов проверяют полный путь к файлу. если при повторном @USE файла полный путь к нему совпадает до символа с путём к ранее подключенному файлу, то файл не загружается и не компилируется.

т.е. если вы напишите:
@USE
file.p
file.p
то вторая инструкция будет просто проигнорирована.

а если напишите:
@USE
file.p
../dir/file.p
то вторая инструкция будет выполнена и тот-же самый файл file.p будет загружен и скомпилирован повторно.

что касается исправления этой ошибки, то тут дожен подумать программист.
в случае с sql классами, то они загружаются один раз. поэтому каталог, где они лежат лучше убрать из CLASS_PATH, и "заюзать" классы напрямую:
@USE
sql/mysql.p