पर सी ++ में ओपनसीवी कोड को संकलित करने के लिए मेकफ़ाइल Learning OpenCV पुस्तक का उपयोग कर ओपनसीवी सीख रहा हूं।उबंटू/लिनक्स
कोड को संकलित करते समय मुझे एक समस्या का सामना करना पड़ रहा है कि मुझे संकलन करने और निष्पादन योग्य प्राप्त करने के लिए एक लंबा आदेश लिखना है।
यह आदेश मैं
g++ `pkg-config –cflags opencv` file_name.cpp -o output_file `pkg-config –libs opencv`
का उपयोग कर रहा है मुझे कोई विशेषज्ञ बनाओ हूँ, लेकिन मुझे लगता है कि मैं लिख रहा है कि लंबे समय से आदेश बनाने का उपयोग कर समाप्त कर सकते हैं। इससे पहले मुझे अपने काम के प्रवाह की व्याख्या करनी चाहिए। मैंने अपनी होम निर्देशिका (~/opencv/
) में opencv नामक एक निर्देशिका बनाई है। मैं अनुभाग द्वारा पुस्तक अनुभाग पढ़ रहा हूं और उस निर्देशिका में नए सीपीपी स्रोत कोड फ़ाइलों में उदाहरणों या अभ्यासों को कोडिंग कर रहा हूं। इसलिए मुझे हाथ से पहले फाइलों के नाम नहीं पता हैं।
अब मुझे क्या करना है बनाना चाहते हैं,
मान लीजिए मैं एक नया मेरा opencv
निर्देशिका में facedetect.cpp
नामक फ़ाइल कोड किया है, और इस
make facedetect
तो मैं करना चाहते हैं की तरह बनाने के अगर मैं फोन मेरे लिए निम्न आदेश निष्पादित करने के लिए
g++ `pkg-config --cflags opencv` facedetect.cpp -o facedetect `pkg-config --libs opencv`
ताकि जब भी मैं abc.cpp नाम की एक नई फ़ाइल बनाउंगा, तो मैं exe प्यारा make abc
ताकि मैं अपने आदेश पंक्ति पर
$ ./abc
चला सकते हैं मेरी abc.cpp परीक्षण करने के लिए
दें कि फ़ाइल बनाने के लिए इतना है कि मैं हर बार टाइपिंग कि लंबे समय आदेश की हताशा में सहेज सकते हैं।
पुनश्च: मैं इस पर मदद के लिए Google पर और CMake के प्रयोग पर this पाया, लेकिन मैं नहीं समझ सकता है कि क्या करता है। कृपया यह भी समझाएं कि मैं उसी कार्य के लिए सीएमके का उपयोग कैसे कर सकता हूं।
CFLAGS = $SHELL(pkg-config --cflags opencv)
LIBS = $SHELL(pkg-config --libs opencv)
facedetect : facedetect.cpp
g++ $(CFLAGS) $(LIBS) -o [email protected] $<
फिर जब आप संकलित करने के लिए चाहते हैं तो आप सिर्फ टाइप करें::
यह केवल 'जी ++ $ (CFLAGS) की तरह लग रहा -ओ $ @ $ <$ (LIBS)' काम करेंगे। लेकिन मुझे लगता है कि यह एक opencv बात है। मेकफ़ाइल के लिए धन्यवाद। क्या आप समझ सकते हैं कि – SPV
बनाने के बारे में जानने के लिए इसका क्या अर्थ है या कोई अच्छा संसाधन दें: [मैन्युअल] (http://www.gnu.org/software/make/manual/make.html)। यह दिखने के रूप में डरावना और समझना मुश्किल नहीं है। – morynicz
धन्यवाद शिव प्रसाद वर्मा, यह वास्तव में तर्कों का ** आदेश ** था। '$ (LIBS)' ** संकलन कमांड ** के अंत में जाना चाहिए, या ओपनसीवी उदाहरण स्वयं संकलित नहीं होंगे! – cosimo