2010-06-26 17 views
5

कभी-कभी मुझे क्रॉस-प्लेटफ़ॉर्म काम के लिए एक जीसीसी का उपयोग करने की आवश्यकता होती है, और कभी-कभी जीसीसी वास्तव में मुझे इसकी चेतावनियों के साथ मज़ाक उड़ाती है। उदाहरण के लिए: एक मुख्य फ़ाइलजीसीसी चेतावनियों और त्रुटियों की पूरी सूची कहां खोजें?

यह बहुत जानकारीपूर्ण चेतावनी है, लेकिन मैं वास्तव में नहीं पता है कि एक 'मुख्य फ़ाइल' जीसीसी की शब्दावली में है में

#pragma एक बार और क्यों यह चाहिए एक बार #pragma नहीं है :)। तो, क्या कोई दस्तावेज मौजूद है जिसमें उन सभी टिप्पणियों के साथ सभी जीसीसी चेतावनियां और त्रुटियां शामिल हैं (ज्यादातर चेतावनियां, त्रुटियां तुच्छ हैं)?

उत्तर

3

'#pragma once' का उद्देश्य हेडर को फिर से शामिल होने से रोकने के लिए है। यदि आपके पास एक स्रोत फ़ाइल (आमतौर पर एक '.c' फ़ाइल) है, तो आप इसे दो बार नहीं पढ़ेंगे (आमतौर पर - मुझे एक स्रोत फ़ाइल के बारे में पता है जो खुद को शामिल करता है [और मुझे यह पसंद नहीं है]; यह #pragma once का उपयोग नहीं करते हैं या नहीं चाहते हैं!)। इसलिए, इस संदर्भ में एक 'मुख्य फ़ाइल' एक हैडर की बजाय, कमांड लाइन पर सूचीबद्ध है।

प्रश्न के विषय के मामले में - जीसीसी मैनुअल में एक व्यापक सूची प्रतीत नहीं होती है। मुझे नहीं पता कि वास्तव में एक है या नहीं।

+0

लेकिन यह हेडर में है। एक precompiled हेडर। – grigoryvp

+0

एक प्रीकंपिल्ड हेडर बनाया जाता है, इसलिए इसे बनाते समय यह "मुख्य फ़ाइल" होती है - और 'प्रोप्रोमा एक बार' संभवतः केवल तब समझ में आता है जब प्रीप्रोसेसर शामिल हो रहा है, और प्रीकंपील्ड हेडर के साथ नहीं। – hobbs

+0

@ हॉब्स: हाँ। 'gcc -c so.h' 'so.h: 1: 9: चेतावनी: #pragma मुख्य फ़ाइल में एक बार जब प्रीडर संकलित शीर्षलेख में शीर्षलेख संकलित करते हैं। मुझे यकीन नहीं है कि उस चेतावनी को दबाने का कोई अच्छा तरीका है या नहीं। –

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