خطأ C1854: لا يمكن الكتابة فوق المعلومات المشكلة أثناء إنشاء رأس Precompiled في ملف الكائن

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

سؤال

foo.cpp(33918) : fatal error C1854: cannot overwrite information formed 
during creation of the precompiled header in object file: 'c:\somepath\foo.obj'

استشارة MSDN حول هذا يعطيني المعلومات التالية:

لقد حددت خيار / YU (استخدام رأس مسبقا) بعد تحديد خيار / YC (إنشاء رأس مسبق) لنفس الملف. بعض الإعلانات (مثل التصريحات بما في ذلك __declspec dllexport) جعل هذا غير صالح.

نحن نستخدم رؤوس DLEXPORT و Precompiled في هذه الحالة. هل واجه أي شخص هذا قبل ومعرفة أي حل؟ أي مدخلات لإلقاء بعض الضوء على هذه المشكلة موضع تقدير كبير.

شكرا

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

المحلول

أعتقد أنه يمكنك العثور على الجواب هنا: http://social.msdn.microsoft.com/forums/en-us/vclanguage/thread/b3a10fa-141b-4A03-934C-7E463F92B2A5/

في الأساس، تحتاج إلى تعيين ملف Stdafx.cpp إلى "إنشاء رؤوس مسبقة" وجميع ملفات .cpp الأخرى إلى "استخدام الرؤوس العمدة"

نصائح أخرى

كان لي هذه المشكلة أيضا.

تأكد من تعيين ملف إخراج رأس Precompiler على الموقع الصحيح. تم إخراج الألغام في الواقع إلى الموقع الصحيح، ولكن كانت هناك مشاكل في قراءة ذلك فقط لأن المسار كان لديه القليل من قطعة أثرية داخل.

كان الحل الخاص بي لإعادة فحص جميع إعدادات الرأس العمودية بعناية في مشروع .EXE فقط ولكن جميع مشاريع DLL أيضا وإعادة إنشاء جميع الرؤوس. بعد ذلك انتهى الخطأ في مجموعة .EXE.

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