क्या संदेश स्टेटमेंट CMakeLists.txt
को छोड़कर फाइलों (कम से कम वेरिएबल्स की लिस्टिंग) को डिबग करने की संभावना है ?
जवाबों:
CMake के लिए कोई इंटरैक्टिव डिबगर नहीं है, हालांकि झंडे भी हैं -Wdev
, --debug-output
और --trace
जो मदद कर सकता है। लॉग फाइलों की जांच करना भी याद रखें CMakeFiles\CMakeOutput.log
और CMakeFiles\CMakeError.log
जो मुख्य रूप से सीएमके द्वारा बुलाए गए प्रक्रियाओं के आउटपुट को इकट्ठा करते हैं (उदाहरण के लिए एक प्रकार या हेडर की उपस्थिति के लिए जांच करते समय)।
संस्करण 3.7 के बाद से , सीएमके अब आधिकारिक तौर पर एक "सर्वर मोड" का समर्थन करता है, इसलिए निकट भविष्य में आईडीई में एकीकरण में सुधार होने की संभावना है। प्रारंभिक समर्थन Qt क्रिएटर और विज़ुअल स्टूडियो 2017 RC दोनों में मौजूद है
if
कथन का उपयोग करते हैं CmakeList.txt
? came --debug ...
और cmake --debug-output ...
उन्हें नहीं छाप रहे हैं। बैश में, समकक्ष है bash -x <cmd>
।
--trace
आमतौर पर काफी व्यापक होता है (किसी फ़ाइल के लिए रीडायरेक्ट करना!)
string(STRIP ...)
टूट गया था। यह भी देखें कि Cmake वैरिएबल में ट्रेलिंग न्यूलाइन कैसे स्ट्रिप करें? । अगर आप नहीं जानते कि मेरी माफी क्या bash -x
है।
आप VisualGDB उपकरण द्वारा प्रदान किए गए नए CMake स्क्रिप्ट डीबगर का उपयोग करने का प्रयास कर सकते हैं । यह CMake के एक ओपन-सोर्स फोर्क का उपयोग करता है जो CMakeLists.txt फ़ाइलों के माध्यम से कदम का समर्थन करता है, कोड / डेटा ब्रेकप्वाइंट सेट करना, चर का मूल्यांकन / बदलना आदि।
यहां नए डीबगर पर एक विस्तृत चरण-दर-चरण ट्यूटोरियल है
स्टीवेयर के सीमेक डेमन टूल्स हैं । मैंने स्वयं उनका उपयोग नहीं किया है, लेकिन वे आत्मनिरीक्षण के लिए संभावनाओं की पेशकश करने का दावा करते हैं जो एक डिबगर के बहुत करीब लगते हैं।
संपादित करें : उन्हें अब CMake- सर्वर कहा जाता है और वे CMake 3.7 का हिस्सा हैं।
मुझे मेरी CMakeLists.txt फ़ाइलों को "डीबग" करने के लिए variable_watch का उपयोग करना पसंद है । बस मेरी स्क्रिप्ट के ऊपर सेट करें:
variable_watch(SOME_MY_VAR)
इसके अलावा, env var के बारे में पढ़ें VERBOSE
: https://cmake.org/cmake/help/latest/envvar/VERVOSIN.html
मैंने इसे इस तरह इस्तेमाल किया:
export VERBOSE=defined
make
और कुछ अधिक वाचालता मिली।
अन्य मामलों में, CMakeLists.txt
निम्नलिखित पंक्ति को शामिल करने के लिए फ़ाइल को संपादित करें :
set(CMAKE_VERBOSE_MAKEFILE ON)
(इस पर कुछ पोस्ट https://bytefreaks.net/programming-2/make-building-with-cmake-verbose ) है।
इसके अलावा, cmake
डिबग आउटपुट को नियंत्रित करने वाले उपयोगी विकल्प हैं, मैनपेज देखें: https://cmake.org/cmake/help/latest/manual/cmake.1.html