خطأ LNK1223 على بنية الذراع
-
22-09-2019 - |
سؤال
مشروع Visual C ++ 3 المدمج ، وهو بناء لـ PocketPC 2000. على بناء الذراع ، يرمي الرابط الخطأ التالي:
خطأ فادح LNK1223: ملف غير صالح أو تالف: يحتوي الملف على مساهمات PDATA غير صالحة
على SH3 ، يقوم المشروع بتجميع وروابط وأعمال. يعمل المشروع أيضًا عندما يتم تصميمه لـ ARM على Visual C ++ 2005 ، لكنني بحاجة إلى اختبار الإنشاءات على وجه التحديد من EVC3.
أي أفكار ، من فضلك؟ ما هي مساهمة PDATA وكيف يمكنني التأثير (أو تعطيل) تلك؟ إنه شيء يتعلق بالتعامل مع الاستثناء ؛ لقد حاولت تعطيل SEH من خلال تحديد /EHsc
, ، دون أي تأثير.
المحلول
غريب جدا. حاولت التعليق على كل شيء في الملف. ذهب الخطأ بعيدًا عندما علقت وظيفة كانت خارجي "C" void __declspec (عارية) بدون جسم (جسم #ifdef'fed بعيدا). لدي وظائف مماثلة في المشروع ، لكنها لم ترمي أي أخطاء مثل هذا. ربما حشرة المترجم ...
نصائح أخرى
لا توجد فكرة مني ، ولكن جرد هذا الموضوع الذي قد يمنحك فكرة عن كيفية إصلاح/حل المشكلة ... ربما:
بعد النظر إلى الخطأ عن كثب ، اكتشفت أخيرًا أن هذا مؤثر جانبي لخطوفي
SC_SetDaylightTime()
في النواة مع نسختي الخاصة. على ما يبدو ، هناك شيء أقوم به في الكود الخاص بي ، مما يجعل المترجم لإنشاء إدخالات PDATA خاطئة بطريقة ما. وضعت استراتيجيا#ifndef
عملت من حوله.