Ошибка в отдельном файле Ады - PullRequest
1 голос
/ 23 августа 2010

Я перевожу файл Ada83 в файл Ada95.Проблема возникает, когда я пытаюсь скомпилировать файл, который вызывает отдельный.Ошибка "Недопустимый символ" и относится к директиве препроцессора:

с BAS_PUT;

#if ADA_COMPILER = "GNAT", затем

С ADA.GNAT_PUT;

#else

WITH ADA_PUT;

#end if;

отдельная (A_CALL_PUT) процедура ....

Эта проблема не возникает, если в файле adb указана та же директива препроцессора, что она не является отдельной функцией.

Кто-то может помочьмне ???

1 Ответ

3 голосов
/ 23 августа 2010

Ада не имеет препроцессора , поэтому # действительно является недопустимым символом.

Некоторые компиляторы (например, Gnat) поставляются с одним, но если это так, то это один из их собственных разработок. Если вам нравится, вы можете настроить систему сборки на запуск ваших исходных файлов Ada через внешний препроцессор (например, препроцессор C). Я никогда этого не делал, но мне сказали, что это в высшей степени выполнимо.

Если ваш компилятор поставляется с препроцессором, он нестандартен. Используйте его, если хотите, но по определению он будет бесполезен для создания переносимых исходных файлов (что, похоже, вы пытаетесь с ним делать).

Большинство людей считают, что лучше всего просто создавать разные исходные файлы для разных сред, а среда сборки (создавать правила?) Переключаться между ними.

...