Не удается найти джедая в моем файле Delphi 5 с помощью XE6
У меня есть многофайловый проект, созданный в Delphi5, и я пытаюсь скомпилировать в Delphi XE6.
В моем файле DSPack.pas я получаю сообщение об ошибке: "'jedi.inc' не может быть найден...", относящийся к строке кода:
{$I jedi.inc}
... есть также много, в основном "необъявленного идентификатора", ошибки, отображаемые как ошибки, но называемые первоначальными ошибками, которые, как я предполагаю, объясняются тем, что компилятор не может найти файл jedi.inc...
Я нашел файл jedi - jcl- в моей папке Comps.
Мой вопрос в три раза:
Первое: почему XE6 не регистрирует jedi.inc, а в Delphi 5?
Второе: где обычно находится файл джедая?
Я считаю, что я скачал обновленную версию файла jcl (jcl-2.6.0.5178).
Три: Что мне нужно сделать в моем проекте, чтобы компилятор и нашел файл jedi.inc?
1 ответ
Я предполагаю, что вы знаете, что вы можете добавить.Pas к проекту, нажав кнопку "Добавить файл в проект" в D5..XE6 IDE. Вы можете сделать то же самое с файлом.Inc. Тем не мение...
Когда вы делаете это для файла.Pas, вы видите во всплывающем окне "Диспетчер проектов", что он записал путь к нему, и этого достаточно для того, чтобы компилятор мог его найти. Но по какой-то причине то же самое не относится к файлу.Inc. Это очевидно по замыслу, потому что эта разница существовала, по крайней мере, еще в D5, IIRC. TBH, я не уверен почему, потому что несколько раз я видел проблемы, которых можно было бы избежать, если бы компилятору удалось найти файл.Inc из того, что менеджер проекта, очевидно, знает о его местонахождении. Итак, я не могу ответить на ваше "почему?" запрос, хотя я смею сказать, что разработчики компилятора могли.
Чтобы позволить компилятору находить файл.Inc, у вас есть две альтернативы для обработки вашего запроса "как" (кроме перемещения файла.Inc, который в случае такого большого и сложного, как JCL/JVCL, вероятно, не очень хорошая идея)
- Включите путь к файлу.Inc в директиву {$I }. В моем случае материал JCL находится в двух папках под папкой Jedi, которая сама находится под каталогом Delphi на моем диске D:, поэтому я написал бы строку "{$I ...}" как
{$I D:\Delphi\Jedi\JCL\Source\Include\Jedi.Inc}
- Добавьте путь к файлу.Inc в список путей в
Проект | Параметры \Delphi compiler| Путь поиска. Первый из этих методов, вероятно, предпочтительнее, поскольку он включает в себя только файл.Inc, тогда как второй говорит компилятору искать в этом пути все, что он еще не нашел, что может быть не всегда желательно.
Что касается вашей точки "где", как вы, возможно, поняли из одного из комментариев, местоположение файла (ов) Jedi.Inc в дистрибутиве JCL/JVCL, похоже, было перемещено с давних времен туда, где оно находится сейчас, Я думаю, поэтому у вас возникла эта проблема с чем-то, что раньше компилировалось в D5.