У ada95 есть 3 файла .ali, .adb и .o - могу ли я скомпилировать - PullRequest
1 голос
/ 31 января 2010

Я нашел какую-то старую работу в колледже с моим последним проектом Ada95. К сожалению, диск был поврежден, и мне удалось восстановить только 3 файла (исходный и исполняемый файлы не удалось восстановить):

project.adb, project.ali и project.o

Достаточно ли этих 3 файлов для компиляции нового exe? Я сейчас скачиваю компилятор Gnat, но, должен признать, я забыл почти все, что связано с ADA ...

Frank

[EDIT] shucks .... использование GCC для компиляции project.adb выдает ошибку об отсутствующем файле рекламы, которую я не могу восстановить.

Можно ли извлечь / скомпилировать только файлы ".o" или ".ali"? Или я чучела?

Ответы [ 2 ]

3 голосов
/ 31 января 2010

project.adb является исходным файлом.

Поскольку вы говорите, что gcc жалуется на отсутствующий файл .ads, это указывает на то, что project.adb содержит тело пакета. Вы можете вручную создать соответствующую спецификацию пакета, поместив в package.ads:

следующее
package Project is
end Project;

Теперь этого почти наверняка недостаточно, потому что в спецификации проекта, вероятно, были какие-то объявления типа и константы, поэтому вам придется проанализировать тело вашего пакета и определить, на что он ссылается. Определите, как должны выглядеть эти объявления, и добавьте их. Да, и если ваше тело пакета "с" какими-либо пакетами, которые не являются частью стандартной библиотеки Ada, вам также придется их восстанавливать.

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

Честно говоря, если бы это был я, я бы потратил больше времени на попытки использовать некоторые инструменты для восстановления диска, чтобы извлечь с диска все, что мог.

0 голосов
/ 26 февраля 2010

В Ada95 (и 2005) в основном работают с файлами adb (иногда с файлами рекламы), все остальное генерируется на ходу. В вашем случае файл adb, безусловно, связан с другими файлами рекламы.

Однако рекламные файлы, как правило, представляют собой небольшие программы (очевидно, если вы не пытаетесь делать действительно экзотические вещи, как «обедающие философы»), которые относятся к алгоритмической / математической структуре программы, если вы можете откопать то, что вы делали в ваш проект, то не должно быть невозможно восстановить его!

...