c - Include a header file for parsing of all other files with Doxygen preprocessor -
मैं एक परियोजना पृष्ठभूमि: मेरी सी प्रोजेक्ट में शीर्ष लेख फ़ाइल यह उसी बिल्ड कमांड पर एक लक्ष्य Doxygen के साथ मेरा मुद्दा: मैं Doxygen के साथ प्रलेखन उत्पन्न करने का प्रयास करता हूं। मेरे पास Doxyfile में है: कोड है कि परिभाषित करता है पर निर्भर है मेरा निष्कर्ष अब तक: मैं Doxyfile का मैं यह कैसे सुनिश्चित करूं कि यह आपके लिए सी कोड को स्वयं दिखाने के लिए शायद फायदेमंद होगा। सामान्य तौर पर, डॉक्स्यजन एक मानक प्रीप्रोसेसर चलाता है- यानी, रेंडर किया गया कोड उसी तरह होना चाहिए, जैसे कि कंपाइलर ने इसे प्रीप्रोसेस किया। कोड में h फ़ाइल से
#define s को शामिल करना चाहता हूं
config.h < / Code> उस पर बिल्ड कमांड है।
MODEL_A भी परिभाषित करता है।
config.h लक्ष्य के आधार पर परिभाषित करता है बनाता है (
MODEL_A के लिए के रूप में
MODEL_B के लिए नहीं परिभाषित करता है की एक ही सूची) बनाया जा रहा:
#if परिभाषित (MODEL_A) #define HAS_FUNCTIONALITY_1 #define HAS_FUNCTIONALITY_2 #elif परिभाषित (MODEL_B) #define HAS_FUNCTIONALITY_3 #define HAS_FUNCTIONALITY_4 #endif
# config.h से INPUT सहित आवश्यक लगता है इनपुट = ./source/config.h \ ./source ENABLE_PREPROCESSING = हाँ MACRO_EXPANSION = हाँ EXPAND_ONLY_PREDEF = नहीं INCLUDE_PATH = ./source INCLUDE_FILE_PATTERNS = ./source/config.h पूर्वनिर्धारित = MODEL_A
HAS_FUNCTIONALITY_x दस्तावेज में, शामिल नहीं है के रूप में यदि पूर्वप्रक्रमक
config.h में परिभाषित करता है नहीं मिला।
Doxygen -d प्रीप्रोसेसर की मदद से पूर्वप्रक्रमक उत्पादन का निरीक्षण किया, और कहा कि देख सकते हैं:
। / Source / config.h को पहले, और सही
MODEL_A के अनुसार पार्स किया गया था (मैं सही
#defines < / कोड> पूर्वप्रक्रमक आउटपुट में)।
#define HAS_FUNCTIONALITY_1 पूर्वप्रक्रमक उत्पादन में आंकड़े।
HAS_FUNCTIONALITY_1 पर निर्भर की पूर्व प्रसंस्करण अधिनियम के रूप में अगर यह परिभाषित नहीं किया गया था
HAS_FUNCTIONALITY_1 फ़ील्ड में परिभाषित
PREDEFINED अपेक्षित के रूप में कार्य करता है यह एक व्यावहारिक समाधान नहीं है, लेकिन फिर भी दिलचस्प है।
#define पंक्ति जो पहले से
config.h < / कोड> पूर्ववर्ती सी फाइलों पर पहले प्रसंस्करण कार्य करते समय परिभाषित किया जाता है?
#define HAS_FUNCTIONALITY_1 के बराबर को प्राप्त करने के लिए - इसे परिभाषित करना होगा। मैं इसे डॉक्सिजन कॉन्फ़िगरेशन में जोड़ने के लिए अपनी अनिच्छा से समझता हूं कि इसे प्रोजेक्ट (या शायद मेकफील) में कहीं और परिभाषित किया गया है और यही कारण है कि वास्तविक कोड कार्य करता है जैसे कि यह परिभाषित किया गया था। यदि यह मामला है, तो मुझे अधिक प्रीप्रोसेसर ट्रिकरी के अलावा कोई सुगम समाधान नहीं मिला है या इसे डॉक्सिजन कॉन्फ़िग फाइल में जोड़ना है।
Comments
Post a Comment