मैं CMake का उपयोग कैसे करूँ?


102

मैं opencv को संकलित करने के लिए CMake का उपयोग करने की कोशिश कर रहा हूं।

मैं ट्यूटोरियल पढ़ रहा हूं लेकिन समझ नहीं पा रहा हूं कि CMakeLists फाइलें क्या हैं और यह CMake के gui से कैसे जुड़ा है?

यह भी समझ में नहीं आ रहा है कि मेकफाइल्स क्या हैं, क्या वे वही हैं जो CMakeLists हैं?

और वह कौन सी फाइल है, जिसे मैं अंत में विजुअल-स्टूडियो के साथ खोलता हूं?


यदि प्रश्न विंडोज से संबंधित है, तो उसमें इसका उल्लेख किया जाना चाहिए (शायद एक windowsटैग के साथ )
बेसिल स्टायरनेविच

सीएमके 3.13.3, प्लेटफ़ॉर्म विंडोज और आईडीई विज़ुअल स्टूडियो 2017 के बारे में, मेरा सुझाव है: wikihow.com/Use-CMM सादर।
जॉर्ज थियोडोसिउ

जवाबों:


30

CMake एक CMakeList फ़ाइल लेता है, और इसे एक प्लेटफ़ॉर्म-विशिष्ट बिल्ड फॉर्मेट, जैसे कि मेकफाइल, विज़ुअल स्टूडियो, आदि में आउटपुट करता है।

आप पहले CMakeList पर CMake चलाते हैं। यदि आप विज़ुअल स्टूडियो में हैं, तो आप आउटपुट प्रोजेक्ट / समाधान लोड कर सकते हैं।


2
Makefile क्या है? मैं विज़ुअलस्टडियो के लिए प्रोजेक्ट / सॉल्यूशन फ़ाइल कहाँ ढूँढूँ?
लिटल मटुक

3
जब आप cmake (या CMakeSetup और हिट जेनरेट) चलाते हैं, तो आपको प्रोजेक्ट ट्री में Makefile (यदि यूनिक्स) या प्रोजेक्ट फ़ाइलों को खोजने में सक्षम होना चाहिए। स्थान CMakeList में निर्दिष्ट किया जा सकता है। यहाँ सीएमके
holtavolt

2
CMake आपकी पसंद के बिल्ड प्रारूप का उपयोग करके पूरी परियोजना को कॉन्फ़िगर करता है, जिसका अर्थ है कि यह सब कुछ सेट करता है ताकि आप उपयोग कर सकें, उदाहरण के लिए, संकलन करने के लिए Visual Studio। डिफ़ॉल्ट रूप से (कम से कम लिनक्स पर), यह एक परियोजना बनाता है जो मेक के बजाय उपयोग करता है। मेक का उपयोग वास्तव में प्रोजेक्ट बनाने के लिए किया जाता है, कॉन्फ़िगर या सेट अप करने के लिए नहीं। तो पहले आपको प्रोजेक्ट स्थापित करने के लिए CMake का उपयोग करना होगा, फिर Make to संकलन और सामान बनाने के लिए चलाना होगा।
leinaD_natipaC 15

156

मैं विंडोज के बारे में नहीं जानता (इसका इस्तेमाल कभी नहीं किया), लेकिन एक लिनक्स सिस्टम पर आपको बस एक निर्देशिका (शीर्ष स्रोत निर्देशिका में) बनाना होगा

mkdir build-dir

इसके अंदर जाओ

cd build-dir

फिर चलाएँ cmakeऔर मूल निर्देशिका को इंगित करें

cmake ..

और अंत में चला make

make

ध्यान दें कि makeऔर cmakeविभिन्न कार्यक्रम हैं। cmakeएक Makefileजनरेटर है, और makeउपयोगिता एक Makefileशाब्दिक फ़ाइल द्वारा शासित है । देखें cmake और मेकअप विकिपीडिया पृष्ठों की है।

एनबी: विंडोज पर, cmakeसंचालित हो सकता है इसलिए इसे अलग तरीके से उपयोग करने की आवश्यकता हो सकती है। आपको प्रलेखन पढ़ने की आवश्यकता होगी (जैसे मैंने लिनक्स के लिए किया था)


Cmake और make में क्या अंतर है? क्या वे अलग-अलग कार्यक्रम हैं?
lital maatuk

4
बहुत बढ़िया जवाब; मैं समझ नहीं सका कि उप-निर्देशिका में बिल्ड फाइलें कैसे प्राप्त करें। मुझे समझ नहीं आता कि आधिकारिक दस्तावेज में इसका उल्लेख क्यों नहीं है।
TheBigB

यह लिनक्स के तहत काम करता है, लेकिन विंडोज पर यह C / C ++ कंपाइलर का पता लगाने पर टूट जाता है। किसी भी विचार कैसे करना है?
19-21 को bartlomiej.n

यह इस बात पर निर्भर करता है कि आप विशेष कंप्यूटर कैसे सेट करते हैं। जांचें कि आपका PATHचर सही है। BTW, मैंने अपने जीवन में कभी भी विंडोज का उपयोग नहीं किया (और 1974 में अपना पहला कार्यक्रम लिखा)
बेसिल स्टायरनेविच 11

2
इतने सारे upvotes और जवाब विजुअल स्टूडियो के बारे में कुछ नहीं कहते हैं।
अब्यज

10

हां, सेमीके और मेक अलग कार्यक्रम हैं। cmake(लिनक्स पर) मेकफाइल जनरेटर (और मेकफाइल -एस makeउपयोगिता को चलाने वाली फाइलें हैं )। अन्य मेकफाइल जनरेटर हैं (विशेष रूप से कॉन्फ़िगर और ऑटोकॉनफ आदि ...)। और आप अन्य बिल्ड ऑटोमेशन प्रोग्राम (जैसे निंजा ) पा सकते हैं ।


मुझे लगता है कि यह थोड़ा भ्रमित करने वाला है। cmake एक बिल्ड सिस्टम जनरेटर है, और इसमें से एक चीज़ जो उत्पन्न कर सकती है वह है मेकफाइल्स ( gnu.org/software/bake के रूप में )। कई अन्य प्रणालियाँ जो इसे उत्पन्न कर सकती हैं, हालाँकि, और वे "मेकफाइल जनरेटर" नहीं हैं। यदि आप cmake --help चलाते हैं, तो मैकोस (और संभवतः हर जगह) पर, यह आपके पास इसके जनरेटर की एक लंबी सूची देगा। उदाहरण के लिए, cmake Xcode प्रोजेक्ट्स को जनरेट कर सकता है - कुछ नहीं करना है।
जेम्स मूर

0

सीएमके 3.13.3, प्लेटफॉर्म विंडोज और आईडीई विजुअल स्टूडियो 2017 के बारे में, मैं इस गाइड का सुझाव देता हूं । संक्षेप में मैं सुझाव देता हूं:
1. सेमीकेक डाउनलोड करें> इसे अनज़िप करें> इसे निष्पादित करें।
2. जैसा कि उदाहरण डाउनलोड GLFW> यह unzip> अंदर फ़ोल्डर बनाने बिल्ड
3. cmake में ब्राउज़ करें "स्रोत"> ब्राउज़ करें "बनाएँ"> कॉन्फ़िगर करें और उत्पन्न करें।
4. Visual Studio 2017 में अपना समाधान बनाएँ।
5. बायनेरिज़ प्राप्त करें।
सादर।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.