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 में बिल्ट-इन वेरिएबल्स हैं