ADA95 لديها 3 ملفات .ali ، .adb و .o - هل يمكنني التجميع

StackOverflow https://stackoverflow.com/questions/2172441

  •  24-09-2019
  •  | 
  •  

سؤال

لقد وجدت بعض الأعمال الجامعية القديمة ، مع مشروعي النهائي ADA95 عليه. للأسف ، تم تالف القرص ، ولم أتمكن إلا من استرداد 3 ملفات (لا يمكن استرداد المصدر والقابل للتنفيذ):

project.adb ، project.ali و project.o

هل هذه الملفات الثلاثة كافية لتجميع exe جديد؟ أقوم بتنزيل برنامج التحويل البرمجي GNAT الآن ، لكن يجب أن أعترف ، لقد نسيت كل شيء تقريبًا يتعلق ...

صريح

تحرير] Shucks .... باستخدام GCC لتجميع Project.ADB يلقي خطأ حول ملف الإعلانات المفقودة ، والذي لا يمكنني استرداده.

هل من الممكن استخراج هذا / تجميع ملفات ".o" أو ".ali"؟ أو ، هل أنا محشو؟

هل كانت مفيدة؟

المحلول

Project.adb هو ملف مصدر.

بما أنك تقول إن GCC يشتكي من ملف .ADS المفقود ، فإن هذا يشير إلى أن Project.adb يحتوي على هيئة حزمة. يمكنك بناء مواصفات حزمة مقابلة يدويًا عن طريق وضع ما يلي في package.ads:

package Project is
end Project;

الآن هذا بالتأكيد لا يكفي ، لأن مواصفات المشروع ربما كان لها نوع وإعلانات مستمرة فيه ، لذلك يجب عليك تحليل جسمك وتحديد ما يشير إليه. استنتج ما ينبغي أن تبدو عليه هذه الإعلانات وإضافتها. أوه ، وإذا كان جسم الحزمة "مع" أي حزم ليست جزءًا من مكتبة ADA القياسية ، فسيتعين عليك استعادة تلك أيضًا.

إذا تمكنت من الحصول على مواصفاتك المهندسة العكسية والهيكل الذي يجب تجميع مشروعك (وسيتعين عليك سحب مواصفات تلك البرامج الفرعية-التي تتطابق مع مظهرها في هيئة الحزمة-إلى المواصفات أيضًا.)

بصراحة ، إذا كان الأمر أنا ، فسأقضي المزيد من الوقت في محاولة استخدام بعض أدوات استرداد القرص لسحب أي شيء آخر يمكنني إيقافه.

نصائح أخرى

في ADA95 (و 2005) يعمل المرء في الغالب مع ملفات ADB (أحيانًا مع ملفات الإعلانات) يتم إنشاء كل شيء آخر في التشغيل. في حالتك ، يكون ملف ADB مرتبطًا بالتأكيد بملفات الإعلانات الأخرى.

ومع ذلك ، فإن ملفات الإعلانات عادة ما تكون برامج صغيرة (من الواضح ، إذا كنت لا تحاول أشياء غريبة حقًا مثل "الفلاسفة لتناول الطعام") والتي تتعلق بالهيكل الخوارزمي/الرياضي للبرنامج ، إذا كان بإمكانك حفر ما فعلته في مشروعك بعد ذلك لا ينبغي أن يكون من المستحيل استعادته!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top