سؤال

أنا أعمل على كتابة نواة، ولدي عدد قليل من الأصدقاء الذين يعملون معي في المشروع.لقد كنا نستخدم DJGPP لتجميع المشروع لفترة من الوقت، ولكننا نواجه بعض مشكلات التوافق عبر الأنظمة الأساسية أثناء التجميع بهذه الطريقة والتي جعلت شريكي الرئيسي في المشروع غير قادر على التجميع على نظام التشغيل Windows XP.(يواجه مجلس التعاون الخليجي الخاص بـ DJGPP مشكلات مع قوائم الوسائط الأطول من 127 على نظام التشغيل Windows XP، ولكن لا يواجه مشكلات مع نفس قوائم الوسائط على نظام التشغيل Vista.لذا، لمرة واحدة، يعمل نظام Vista بشكل أفضل من XP في شيء ما.س.س)

Anywho، بدلاً من محاولة التوصل إلى بعض الاختراقات القذرة لجعل الشيء الرتق متوافقًا مع DJGPP، قررنا أننا نريد التخلص من DJGPP تمامًا والعمل مع إصدار مختلف من GB للنوافذ.المشكلة هي أن MinGW (على حد علمي) لا يسمح لنا باستخدام بناء جملة NASM لأجزاء التجميع من التعليمات البرمجية، وسيكون من الصعب بعض الشيء تحويلها كلها إلى بناء جملة AT&T في هذه المرحلة.ممكن بالطبع، لأنه في وقت مبكر إلى حد ما في المشروع، ولكنه مؤلم.

والآن أنت تعرف هذه القضية.سؤالي هو هذا:ما هي توزيعة برنامج التحويل البرمجي لدول مجلس التعاون الخليجي لنظام التشغيل Windows التي ستسمح لنا بنقل هذا المشروع إلى نفسه بسهولة أكبر؟من الناحية المثالية، نحن نبحث عن شيء يمكنه تنفيذ بناء جملة مجمع NASM، دون الاعتماد على ملفات dll الخارجية (هذه نواة هنا، ولن يتمكن من الوصول إليها) وسيعمل بشكل متسق على إصدارات متعددة على نظام التشغيل Windows.ما هي توصياتك حول أفضل طريقة للقيام بذلك، وما هو إصدار مجلس التعاون الخليجي لنظام التشغيل Windows الذي توصي به؟

لاحظ أنه إذا كنا سنحتاج إلى تحويل المشروع إلى بناء جملة AT&T فلا بأس، فأنا أود فقط عدم القيام بذلك.نحن في الواقع نستخدم NASM لتجميع أجزاء التجميع منه، وهذا ينتج ملف .o صالح، لكن MinGW غير قادر على ربط ذلك لسبب ما.أعتقد أن بتات التجميع المضمنة (ربما 5 أسطر) هي بالفعل بناء جملة AT&T، كما هو مطلوب من قبل دول مجلس التعاون الخليجي.

شكرًا!

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

المحلول

وربما كنت تمر نوع الكائن الخطأ NASM مع الخيار -f.

وأراهن أنك تمر COFF -f.

وسوف تحتاج إلى تمرير Win32 و-f.

نصائح أخرى

بناء مترجم عبر.

http://wiki.osdev.org/GCC_Cross-Compiler

هذا ما فعلته عند الانتقال من DJGPP للتطوير على مضيف Windows.أوصي باستخدام طريقة Cygwin، لأنها أكثر استقرارًا قليلًا من MSYS.

بمجرد الانتهاء من ذلك، قم بتكوين NASM للإنشاء elf32 ملفات الكائنات، وأنت على ما يرام.

هل تستخدم NASM جمعت لDOS أو Windows؟ أنا لم ينظر، ولكن من الممكن أن يكون هناك فرق. أيضا، إذا NASM الخاص بك هو قديمة جدا، قد لا تكون قادرة على توليد شيء مينغو يمكن أن نفهم.

وجدت جوجل للبحث سريع على البرنامج التعليمي على تجميع X264 تحت مينغو ، حيث واحدة من الخطوات هو تجميع NASM على مينغو.

وإذا تعذر ذلك، قد تتمكن من محاولة (كما اقترح على تعليق على إجابة أخرى) باستخدام objcopy.

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