SQLite और googletest एक बहुत ही उपयोग में आसान, सिंगल-फ़ाइल संस्करण के साथ आते हैं जो इसे अन्य प्रोजेक्ट्स में उपयोग करने के लिए हवा बनाता है, क्योंकि आपको केवल एक स्रोत फ़ाइल जोड़ने की आवश्यकता होती है। संयुक्त स्रोत फ़ाइल बनाने के लिए उनमें से दोनों घर-ब्रू उपकरण का उपयोग करते हैं, इसलिए मुझे आश्चर्य है कि इसके लिए एक और सामान्य उपकरण है या नहीं? इसे कार्यान्वयन/हेडर फाइलों की एक सूची लेनी चाहिए और एक संयुक्त हेडर/स्रोत थूकना चाहिए, और स्थानीय को ठीक करना चाहिए। मैं ठीक हूं अगर यह सशर्त शामिल नहीं है/इसमें Boost.Tuple/MPL जैसे विभिन्न #defines
के साथ शामिल है। एक सामान्य लक्ष्य पुस्तकालय आईसीयू की तरह कुछ होगा।उपकरण को एक समामेलन बनाने/सी/सी ++ के लिए लाइब्रेरी की सभी स्रोत फ़ाइलों को गठबंधन करने के लिए टूल?
उपकरण को एक समामेलन बनाने/सी/सी ++ के लिए लाइब्रेरी की सभी स्रोत फ़ाइलों को गठबंधन करने के लिए टूल?
उत्तर
यदि आपके शामिल हैं सही ढंग से परिभाषित हैं (यानी, सभी शीर्षलेख फ़ाइलों में गार्ड हैं, और प्रत्येक हेडर/कोड इकाई में सभी शामिल हैं जिनमें यह आवश्यक है) तो आप इसे 'आधा मैन्युअल' कर सकते हैं। सिस्टम हेडर को ढूंढें और उन्हें टिप्पणी करें, फिर एक शीर्षलेख बनाएं जिसमें किसी भी यादृच्छिक क्रम में सबकुछ शामिल हो और हेडर प्रीप्रोसेस (जीसीसी में gcc -E
होगा) और फिर कोड इकाइयों के साथ समान रूप से कार्य करें।
यह मैनुअल दृष्टिकोण बोझिल हो सकता है, लेकिन अगर आपको ठीक होने के बाद केवल इसे करने की आवश्यकता है। फिर फिर, यहां तक कि अगर हेडर फ़ाइलों को विलय करना भी समझ में आता है तो मैं इसे नहीं करना पसंद करता हूं। मैं वास्तव में फ़ाइलों को अलग छोड़ दूंगा, और यदि आपको लगता है कि आपको इसकी पहुंच को सरल बनाना है, तो बंडलिंग हेडर प्रदान करें जो केवल दूसरों को शामिल करें। यह दृष्टिकोण है कि कुछ बढ़ावा पुस्तकालय लेते हैं, जहां आप जो चाहते हैं उसका विवरण शामिल कर सकते हैं या एक ही शीर्षलेख जिसमें सब कुछ शामिल है। कोड को एक स्थिर lib में संकलित/लिंक किया जा सकता है और यह प्रयोग किया जाता है जैसे कि यह एक तत्व था।
यह आईसीयू में दिलचस्प हो सकता है, जिसमें कुछ मामलों में, असंगत परिभाषित/शामिल है और सी और सी ++ और कई जेनरेट की गई फाइलों के मिश्रण शामिल हैं। शायद हमें बताएं कि यह कैसे जाता है?
(प्रकटीकरण: आईसीयू डेवलपर)
इस https://github.com/vinniefalco/Amalgamate/ यह मदद कर सकते हैं हो सकता है की कोशिश ...
क्या ऑपरेटिंग सिस्टम? –
विंडोज या लिनक्स, अधिमानतः दोनों। मैं ठीक हूं हालांकि उपकरण केवल उनमें से एक पर चलता है। – Anteru