Я начал делать одну программу на Дельфи 2006, но обнаружил, что VCL не поддерживает Unicode (не знал этого, потому что раньше нужды не было), поэтому решил попробовать Free Pascal и Lazarus.
Однако при попытке скомпилировать один из модулей, носящий у меня имя Trees (там самопальная реализация двоичных деревьев) в Lazarus на первой же строчке кода (unit Trees) выползла очень странная ошибка:
Trees.pas(1,1) Fatal: Can't find unit zdeflate
Никаких zdeflate я не использую. Более того, когда я на этот модуль "натравил" FPC (указав в параметрах только -S2), он благополучно скомпилировался в полном объёме. В общем, я понял, что ничего не понимаю :)
Пы.Сы. Проект целиком пока скомпилировать в FPC нельзя -- я там использовал модули Delphi для работы с XML, которых здесь пока нет. Однако ошибка там выползает именно та, что должна быть, и в том модуле, где она есть; Trees же использует только SysUtils.
Фатальная ошибка компиляции в безошибочном модуле
Модератор: Модераторы
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
- Sergei I. Gorelkin
- энтузиаст
- Сообщения: 1409
- Зарегистрирован: 24.07.2005 14:40:41
- Откуда: Зеленоград
Сначала ищутся скомпилированные модули (.ppu), а уже потом исходники к ним. Если исходники не изменялись с момента создания .ppu, то модуль не пересобирается. Исходники "стандартных" модулей компилятор без явного указания пути найти не может - это сделано для того, чтобы он не пытался пересобирать их по собственной инициативе. Компилятор находит "стандартный" trees.ppu и ваш trees.pas. Дальше, я думаю, понятно...
