"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > CMake GCC प्रोजेक्ट्स में डिबग और रिलीज़ बिल्ड को कैसे संभालता है?

CMake GCC प्रोजेक्ट्स में डिबग और रिलीज़ बिल्ड को कैसे संभालता है?

2024-12-21 को प्रकाशित
ब्राउज़ करें:599

How Does CMake Handle Debug and Release Builds in GCC Projects?

सीमेक में डिबग बनाम रिलीज को समझना

जीसीसी संकलित प्रोजेक्ट में, सीएमके विभिन्न लक्ष्य प्रकारों (डीबग/रिलीज) के लिए बिल्ड सेटिंग्स को कॉन्फ़िगर करने में लचीलापन प्रदान करता है। यहां बताया गया है कि आप कुछ सामान्य परिदृश्यों को कैसे संबोधित कर सकते हैं:

लक्ष्य प्रकारों के लिए सीएमके चलाना

डिबग और रिलीज बिल्ड के लिए अलग बिल्ड निर्देशिका बनाने के लिए, इन चरणों का पालन करें:

mkdir Release
cd Release
cmake -DCMAKE_BUILD_TYPE=Release ..
make

डीबग बिल्ड के लिए:

mkdir Debug
cd Debug
cmake -DCMAKE_BUILD_TYPE=Debug ..
make

CMake स्वचालित रूप से CMAKE_BUILD_TYPE सेटिंग के आधार पर उपयुक्त कंपाइलर फ़्लैग जोड़ता है। अन्य पूर्वनिर्धारित बिल्ड कॉन्फ़िगरेशन में RelWithDebInfo और MinSizeRel शामिल हैं। इन फ़ाइलों के भीतर, आप वेरिएबल सेट कर सकते हैं जैसे:

set(CMAKE_CXX_FLAGS_DEBUG_INIT "-Wall") set(CMAKE_CXX_FLAGS_RELEASE_INIT "-Wall")

ये सेटिंग्स संबंधित डिबग और रिलीज़ बिल्ड पर लागू की जाएंगी।

set(CMAKE_CXX_FLAGS_DEBUG_INIT "-Wall")
set(CMAKE_CXX_FLAGS_RELEASE_INIT "-Wall")

CMakeLists.txt आमतौर पर सेट होता है CMAKE_CXX_COMPILER और CMAKE_C_COMPILER चर डिफ़ॉल्ट C और C कंपाइलर्स निर्दिष्ट करने के लिए। हालाँकि, यदि आपको अलग-अलग लक्ष्यों के लिए अलग-अलग कंपाइलरों का उपयोग करने की आवश्यकता है, तो आप CMakeLists.txt में कस्टम लक्ष्य परिभाषित कर सकते हैं:

add_executable(my_debug_executable gcc) लक्ष्य_लिंक_लाइब्रेरीज़(my_debug_executable my_debug_library) add_executable(my_release_executable g ) target_link_libraries(my_release_executable my_release_library)

इस उदाहरण में, my_debug_executable GCC का उपयोग करता है और my_release_executable G का उपयोग करता है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3