2015-07-29 7 views
12

voglio compilare un OpenCV Console programma C++ in Visual Studio 2013. Questo è il mio codice:"Il programma non può iniziare perché opencv_world300.dll manca dal computer" Errore in C++

#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; 
} 

Anche se io ho definito tutte le directory nelle proprietà sia nelle directory Computer sia in Visual Studio, ottengo l'errore "The program can't start because opencv_world300.dll is missing from your computer.".

Come posso risolvere questo problema?

Grazie

+1

Se si dispone della dll in questione, la cosa più semplice da fare è copiare e incollare nella cartella di output eseguibile dei progetti –

+1

Ho notato che questa dll non è posizionata con altre DLL. Hai bisogno di trovare la cartella in cui si trova 'opencv_world300.dll'. È tutto. – CroCo

risposta

9

Sotto Windows si può copiare da:

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

e metterlo nella soluzione di Visual Studio (suppongo si utilizza un/configurazione di x64 Rilasciare):

<your solution directory>\x64\Release 

Oppure è possibile aggiungere la suddetta OpenCV alla variabile di ambiente PATH

+1

Funziona e questo è ottimo, ma non riesco a capire perché ha funzionato in modo impeccabile prima di senza il trucco attuale. –

+1

@RevJohn puoi spiegare come fare questo: "E inseriscilo nella tua soluzione Visual Studio (presumo tu stia usando una configurazione x64/Release): \ x64 \ Release" – Alex

+3

Vai al sistema variabili di ambiente e scorrere fino alla variabile "Percorso", modificarlo e aggiungere " \ opencv30 \ build \ x64 \ vc12 \ bin" a (assicurarsi di seguire, la sintassi e così via). Quindi riavvia Visual Studio e si dovrebbe essere impostato. –

3

Se questa domanda è ancora pertinente, ho capito il modo.

Suppongo che tu abbia utilizzato il tutorial sul sito Web OpenCV per impostare OpenCV. Una volta eseguito il prompt dei comandi ed eseguito il comando, viene creata la variabile di ambiente per OpenCV ma non la aggiunge nel percorso. Quindi se vai sul percorso e aggiungi la posizione del cestino in vc12 (vc14 per me), salvalo e riavvia Visual Studio, funziona.

4

È possibile controllare la variabile di sistema per confermare la directory in cui si trova opencv_world300.dll (forse C:\opencv\build\x64\vc12\bin).

Se esiste, ma il problema non è risolto, provare a mettere tutti .dll i file nella directory di C:\WINDOWS\system32

+1

La variabile di sistema è chiamata 'PATH' o ce ne sono altri? Il nome della variabile dipende dalla versione di Windows? Qual è il modo migliore per leggere la variabile (esempio sarebbe bello)? – Alex

+2

Suggerire di copiare DLL nella directory di sistema di Windows è semplicemente terribile. Basta impostare il 'PATH' correttamente, invece di trasformare il sistema operativo in un casino. –

7

Ho avuto lo stesso problema.

Sono nella versione 320. Una volta impostate tutte le variabili di ambiente, assicurati che il tuo Additional Include Directories, Additional Library Directories e Additional Dependencies siano tutti corretti. Per me erano $(OPENCV_BUILD)\include;, $(OPENCV_BUILD)\x64\vc14\lib; e opencv_world320d.lib; rispettivamente.

mio OPENCV_BUILD variabile del percorso è C:\opencv320\build impostando la variabile di ambiente %OPENCV_BUILD%\x64\vc14\bin(dove si trovano i file dll). Per accedere alle cose Additional, fare clic con il tasto destro del mouse sul progetto/soluzione e selezionare properties -> C/C++ per il primo e properties -> Linker -> General e Input per gli altri due.

Riavviare Visual Studio e se tutto è stato implementato correttamente, si dovrebbe essere in grado di eseguire il programma e dovrebbe iniziare.

Edit:

seconda di ciò che avevo usato per passare anche la mia da x86 al x64 nel Solution Platforms discesa.

1

Ho appena avuto lo stesso identico problema utilizzando la versione 320. Nel mio caso il mio "Comodo Internet Security" stava bloccando alcune cose dell'applicazione stessa e di OpenCV. Assicurati di metterli tutti nella lista "di fiducia" facendo clic con il tasto destro su di essi nel tuo firewall.

1

Conosco questo vecchio post ma ho notato che il mio ha un problema che distingue tra lib e bin, quindi ho aggiunto entrambi alla variabile PATH e ha funzionato.

Problemi correlati