2012-01-19 22 views
19

के साथ प्रीकंपिल्ड हेडर मैं सी में अपने प्रोजेक्ट में प्री-कंपाइल हेडर का उपयोग कर रहा हूं लेकिन हम परियोजना में एक .CPP फ़ाइल को एकीकृत कर रहे हैं।मिश्रित सी और सी ++

यहाँ त्रुटि है:

Error 1 fatal error C1853: 'Debug\MuffinFactory.pch' precompiled header 
file is from a previous version of the compiler, or the precompiled header is C++ 
and you are using it from C (or vice versa)  
c:\users\blake\desktop\projects\muffinfactory\source\main.cpp 1 

हम केवल हमारे परियोजना में संकलित एक भी सीपीपी की जरूरत है, लेकिन हम वास्तव में संकलन बार (windows.h और अधिक) को बचाने के लिए पूर्व संकलित हेडर की जरूरत है।

मुझे ऐसा करने के लिए अपनी परियोजना को कैसे व्यवस्थित करना चाहिए?

+0

क्या आप अपने सी को सी ++ के रूप में संकलित कर सकते हैं? –

+1

यह इस तरह की गठबंधन करने की कोशिश में चलने वाली आखिरी समस्या होने की संभावना नहीं है। सामान्य समस्या कुछ सी को डालने की कोशिश कर रही है। सी ++ प्रोजेक्ट में, दूसरी तरफ नहीं। Novices के लिए –

+0

stdafx.h - http://www.viva64.com/en/b/0265/ –

उत्तर

19

तो उस एकल फ़ाइल के लिए प्रीकंपील्ड हेडर का उपयोग न करें!

एक .cpp फ़ाइल होने के नाते, इसमें अलग संकलन विकल्प होंगे।

+0

कृपया बताएं कि आपने क्या जवाब दिया है @ पर्सन –

+0

@nafeeur यह बहुत समय पहले था, लेकिन मेरा मानना ​​है कि विचार यह था कि सी और सी ++ को विभिन्न कंपाइलर विकल्पों की आवश्यकता होगी, इसलिए प्रीकंपील्ड हेडर दोनों सेटों के लिए उपयोग योग्य नहीं होगा (क्या था संकलक इसे स्वीकार कर लिया)। तो बस एक ही सीपीपी फ़ाइल को अलग से संकलित करें, और इसके लिए प्रीकंपिल्ड हेडर का उपयोग न करें। –

5

आप अपनी परियोजना में दो प्रीकंपील्ड हेडर बनाने में सक्षम हो सकते हैं। प्रत्येक स्रोत फ़ाइल पर एक प्रॉपर्टी है जो यह निर्धारित करती है कि यह प्रीकंपिल्ड हेडर का उपयोग करने जा रहा है या प्रीकंपिल्ड हेडर उत्पन्न कर रहा है - हेडर उत्पन्न करने के लिए दो अलग-अलग स्रोतों को सेट करने का प्रयास करें।

+0

ग्रेट विकल्प! यद्यपि .vcproj के साथ थोड़ा झुकाव की आवश्यकता है। –

+10

अतिरिक्त जानकारी: समाधान फ़ाइल का चयन करें, जिसे आप समाधान एक्सप्लोरर से "प्रीकंपिल्ड हेडर" का उपयोग नहीं करना चाहते हैं -> राइट क्लिक -> प्रीकंपिल्ड हेडर विकल्प के तहत, प्रीकंपील्ड हेडर का उपयोग न करें चुनें – Zuuum

+0

धन्यवाद Zuuum यह मेरे लिए काम करता है जब सी & वीएस में सी ++ – Gob00st

1

एक अलग सी ++ प्रीकंपील्ड हेडर फ़ाइल बनाने का प्रयास करें (MuffinFactoryCpp.h कहें जो कि एक की एक प्रति है)। "प्रीकंपिल्ड हेडर" के तहत प्रोजेक्ट सेटिंग्स को देखें और सी ++ स्रोत फ़ाइल के लिए प्रीकंपिल्ड हेडर के रूप में इस नई हेडर फ़ाइल का उपयोग करें।

0

मैंने अभी त्रुटि को देखा और यह धागा पाया। हालांकि, परीक्षण और त्रुटि पर, मैंने पाया कि मुद्दा यह था कि मेरे पास हाल ही में सहेजी गई सभी फाइलें नहीं थीं। ऐसा लगता है कि विजुअल स्टूडियो एक साथ जुड़े फाइलों की तिथियों को सहेजने के बारे में थोड़ा मुश्किल है।

मैं सभी स्रोत फ़ाइलों पर Ctrl + S को मारने के आसपास चला गया और इस मुद्दे को ठीक किया।

संबंधित मुद्दे