Avatar ·

CMake में Debug और Release बिल्ड के बीच क्या अंतर है और उन्हें सही तरीके से कैसे कॉन्फ़िगर करें?

नमस्ते! मैंने अभी-अभी अपने C++ प्रोजेक्ट्स के लिए CMake सीखना शुरू किया है और मैं Debug और Release कॉन्फ़िगरेशन के बीच अंतर नहीं समझ पा रहा हूँ। Visual Studio में मैं बिल्ड मोड चुनने का आदी था, जबकि CMake में इसके लिए `CMAKE_BUILD_TYPE` का उपयोग किया जाता है। मैंने एक सरल CMakeLists.txt लिखा है: ```cmake cmake_minimum_required(VERSION 3.10) project(MyProject) add_executable(myapp main.cpp) ``` और मैं इसे इस तरह बिल्ड करता हूँ: ```bash mkdir build && cd build cmake .. cmake --build . ``` लेकिन मैं `-DCMAKE_BUILD_TYPE=Debug` या `Release` निर्दिष्ट नहीं करता। तब क्या होता है? डिफ़ॉल्ट बिल्ड कौन सा है? और सबसे महत्वपूर्ण बात — Debug (डीबग जानकारी के साथ, बिना ऑप्टिमाइज़ेशन) और Release (ऑप्टिमाइज़ेशन के साथ, बिना डीबग जानकारी) के लिए अलग-अलग कंपाइलेशन फ़्लैग्स को सही तरीके से कैसे सेट करें? मैंने सुना है कि CMake में बिल्ट-इन वेरिएबल्स हैं