2015-07-29 5 views
12

मैं एक opencv कंसोल सी दृश्य स्टूडियो 2013 इस में ++ कार्यक्रम संकलन चाहते मेरी कोड है:"कार्यक्रम शुरू नहीं कर सकते क्योंकि opencv_world300.dll अपने कंप्यूटर से याद आ रही है 'सी में त्रुटि ++

#include "stdafx.h" 
#include "opencv2/highgui/highgui.hpp" 
#include <iostream> 

using namespace cv; 
using namespace std; 

int main(int argc, const char** argv) 
{ 
    Mat img = imread("rgb_1.png", CV_LOAD_IMAGE_UNCHANGED); //read the image data in the file "MyPic.JPG" and store it in 'img' 

    if (img.empty()) //check whether the image is loaded or not 
    { 
     cout << "Error : Image cannot be loaded..!!" << endl; 
     //system("pause"); //wait for a key press 
     return -1; 
    } 

    namedWindow("MyWindow", CV_WINDOW_AUTOSIZE); //create a window with the name "MyWindow" 
    imshow("MyWindow", img); //display the image which is stored in the 'img' in the "MyWindow" window 

    waitKey(0); //wait infinite time for a keypress 

    destroyWindow("MyWindow"); //destroy the window with the name, "MyWindow" 

    return 0; 
} 

हालांकि मैं कंप्यूटर और विजुअल स्टूडियो निर्देशिका दोनों में गुणों में सभी निर्देशिकाओं को परिभाषित किया है, मुझे "The program can't start because opencv_world300.dll is missing from your computer." त्रुटि मिलती है।

मैं इस समस्या को कैसे ठीक कर सकता हूं?

धन्यवाद

+1

यदि आपके पास प्रश्न में डीएल है, तो सबसे आसान काम यह है कि इसे अपनी परियोजनाओं में निष्पादन योग्य आउटपुट फ़ोल्डर –

+1

में कॉपी और पेस्ट करें, मैंने देखा है कि यह डीएल अन्य डीएलएस के साथ नहीं रखा गया है। आपको उस फ़ोल्डर को खोजने की आवश्यकता है जिसमें 'opencv_world300.dll' स्थित है। बस इतना ही। – CroCo

उत्तर

9

खिड़कियों के अंतर्गत आप से इसे कॉपी कर सकते हैं:

<your install directory>\opencv30\build\x64\vc12\bin 

और अपने दृश्य स्टूडियो समाधान में रख (मैं तुम्हें एक 64/रिलीज विन्यास का उपयोग कर रहे मान):

<your solution directory>\x64\Release 

या आप उपरोक्त ओपनसीवी को अपने पाथ पर्यावरण परिवर्तनीय

पर जोड़ सकते हैं
+1

यह काम करता है और यह बहुत अच्छा है, लेकिन मुझे पता नहीं लगाया जा सकता है कि यह वर्तमान हैक के बिना <मेरी अज्ञात कार्रवाई से पहले दोषपूर्ण क्यों काम करता है। –

+1

@RevJohn क्या आप कृपया यह बता सकते हैं कि यह कैसे करें: "और इसे अपने विजुअल स्टूडियो समाधान में रखें (मुझे लगता है कि आप एक x64/रिलीज कॉन्फ़िगरेशन का उपयोग कर रहे हैं): <आपकी समाधान निर्देशिका> \ x64 \ रिलीज़" – Alex

+3

सिस्टम में जाएं पर्यावरण चर और "पथ" चर के लिए नीचे स्क्रॉल करें, इसे संपादित करें और "<अपनी इंस्टॉल निर्देशिका> \ opencv30 \ build \ x64 \ vc12 \ bin" में जोड़ें (अनुसरण करना सुनिश्चित करें; वाक्यविन्यास और ऐसे)। फिर दृश्य स्टूडियो को पुनरारंभ करें और आपको सेट किया जाना चाहिए। –

3

यदि यह प्रश्न अभी भी प्रासंगिक है, तो मैंने रास्ता तय किया।

मुझे लगता है कि आपने OpenCV वेबसाइट पर OpenCV सेट करने के लिए ट्यूटोरियल का उपयोग किया था। एक बार जब आप कमांड प्रॉम्प्ट चलाते हैं और कमांड निष्पादित करते हैं, तो यह OpenCV के लिए पर्यावरण चर बनाता है लेकिन यह पथ में नहीं जोड़ता है। तो यदि आप पथ पर जाते हैं और vc12 (मेरे लिए vc14) में बिन का स्थान जोड़ते हैं, इसे सहेजते हैं, और दृश्य स्टूडियो को पुनरारंभ करते हैं, तो यह काम करता है।

4

आप निर्देशिका की पुष्टि करने के लिए अपने सिस्टम चर की जांच कर सकते हैं जिसमें opencv_world300.dll स्थित है (शायद C:\opencv\build\x64\vc12\bin) मौजूद है।

यह मौजूद है, लेकिन समस्या अभी भी हल नहीं है, तो C:\WINDOWS\system32

+1

क्या सिस्टम वैरिएबल को 'पथ' कहा जाता है या क्या अन्य लोग हैं? क्या चर का नाम विंडोज संस्करण पर निर्भर करता है? चर को पढ़ने का सबसे अच्छा तरीका क्या है (उदाहरण अच्छा होगा)? – Alex

+2

विंडोज सिस्टम निर्देशिका में DLLs की प्रतिलिपि बनाने का सुझाव केवल भयानक है। अपने ओएस को गड़बड़ में बदलने के बजाए बस 'पथ' को ठीक से सेट करें। –

7

को निर्देशिका में सभी .dll फ़ाइलें डाल करने के लिए मैं एक ही समस्या थी प्रयास करें।

मैं संस्करण 320 पर हूं। एक बार आपके सभी पर्यावरण चर सेट हो जाने पर सुनिश्चित करें कि आपका Additional Include Directories, Additional Library Directories और Additional Dependencies सभी सही हैं। मेरे लिए वे $(OPENCV_BUILD)\include;, $(OPENCV_BUILD)\x64\vc14\lib; और opencv_world320d.lib; क्रमशः थे।

मेरे OPENCV_BUILD पथ वैरिएबल C:\opencv320\build है %OPENCV_BUILD%\x64\vc14\bin(जहां .dll फ़ाइलें स्थित हैं) को वातावरण चर की स्थापना। Additional चीजों को पाने के लिए अपने प्रोजेक्ट/समाधान पर राइट-क्लिक करें और पहले और properties -> Linker -> General और Input के लिए properties -> C/C++ का चयन करें।

विजुअल स्टूडियो पुनरारंभ करें और यदि सब कुछ सही ढंग से लागू किया गया था तो आपको प्रोग्राम चलाने में सक्षम होना चाहिए और इसे शुरू करना चाहिए।

संपादित करें:

आप क्या इस्तेमाल किया मैं भी Solution Platforms लटकती में x64 को x86 से मेरा स्विच करने के लिए किया था पर निर्भर करता है

1

मुझे संस्करण 320 का उपयोग कर एक ही समस्या थी। मेरे मामले में मेरा "कॉमोडो इंटरनेट सुरक्षा" एप्लिकेशन की कुछ चीजों और ओपनसीवी को अवरुद्ध कर रहा था। अपने फ़ायरवॉल में उन पर राइट क्लिक करके उन्हें "विश्वसनीय" सूची में रखना सुनिश्चित करें।

1

मुझे यह एक पुरानी पोस्ट पता है, लेकिन मैंने देखा कि मुझे lib और bin के बीच अंतर करने में समस्या है, इसलिए मैंने दोनों को पीएटीएच वैरिएबल में जोड़ा और यह काम किया।

संबंधित मुद्दे