سؤال

أحاول استخدام واجهة برمجة تطبيقات لجهاز واجهة الملكية على نظام مضمن (Freescale HCS08) ، وتشمل الملفات المقدمة رؤوس (.H) والمكتبات (.LIB). يتجمع الرأس بشكل جيد مع بقية الكود الخاص بي (القياسي C) ، ولكن عند محاولة الارتباط مع المكتبة ، أحصل على أخطاء في الذاكرة تقول إن الملف قد يكون تالفًا.

إن فهمي للمكتبات في C محدود إلى حد ما لأنني أعمل بشكل حصري تقريبًا على الأنظمة المدمجة حيث لا توجد أشياء سحرية مثل stdio والملفات و DLLs ؛ ولكن هل ستكون مكتبة (أو أي) منصة محددة؟ هل يحتوي على رمز تم تجميعه بالكامل (إذا كان هناك أي نوع من المستوى هناك)؟ بعض الملفات الأخرى المقدمة هي ملفات مشروع VS ، لذلك إذا كان الأمر كذلك ، فإن .LIB خاص بالمنصة ، فلن يكون من غير المتوقع أن يفشل ربط ملف مخصص لـ X86-Windows بمترجم 8 بت ؛ يمكن أن يكون أنا فقط.

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

المحلول

لا يقتصر الأمر على محددة ملف CPU File (لن يكون هناك أي وسيلة لربط رمز HCS08 برمز X86) ، بل هو محدد للأدوات (لن يتحدث CodeWarior إلى SDCC و GCC/BinuTils لن يتحدث إلى Visual Studio).

نصائح أخرى

نعم ، يحتوي .lib على رمز متجمع بحيث يكون خاصًا بالمنصة. إذا كان لديك المصدر ، فيجب أن تكون قادرًا على إعادة تجميعه إلى النظام الأساسي الخاص بك.

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