Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"The program can't start because opencv_world300.dll is missing from your computer" error in C++

I want to compile an opencv Console C++ program in Visual Studio 2013. This is my code:

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

Although I have defined all the directories in properties both in Computer and Visual Studio directories, I get the following error:

"The program can't start because opencv_world300.dll is missing from your computer."

How can I fix this problem?

like image 921
yusuf Avatar asked Jul 29 '15 21:07

yusuf


5 Answers

Under windows you can copy it from:

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

And put it in your Visual Studio solution (I assume you are using a x64/Release configuration):

<your solution directory>\x64\Release

Or you you can add the above OpenCV to your PATH environment variable

like image 175
RevJohn Avatar answered Oct 18 '22 20:10

RevJohn


I had the same problem.

I'm on version 320. Once all your environment variables are set make sure your Additional Include Directories, Additional Library Directories and Additional Dependencies are all correct. For me they were $(OPENCV_BUILD)\include;, $(OPENCV_BUILD)\x64\vc14\lib; and opencv_world320d.lib; respectively.

My OPENCV_BUILD path variable is C:\opencv320\build setting the environment variable to %OPENCV_BUILD%\x64\vc14\bin (where the .dll files are located). To get to the Additional things right-click on your project/solution and select properties -> C/C++ for the first and properties -> Linker -> General and Input for the other two.

Restart Visual Studio and if everything was implemented correctly then you should be able to run the program and it should start.

Edit:

Depending on what you used I had to also switch mine from x86 to x64 in the Solution Platforms dropdown.

like image 13
luckyging3r Avatar answered Oct 18 '22 22:10

luckyging3r


You can check your system variable to confirm the directory in which opencv_world300.dll is located (maybe C:\opencv\build\x64\vc12\bin) is present.

If it exists but the problem still is not solved, try to put all .dll files in the directory to C:\WINDOWS\system32

like image 7
Fish Chang Avatar answered Oct 18 '22 22:10

Fish Chang


I know this an old post but I noticed that mine has a problem distinguishing between lib and bin, so I added both to the PATH variable and it worked.

like image 5
Tommy Mertell Avatar answered Oct 18 '22 21:10

Tommy Mertell


If this question is still relevant, I figured out the way.

I presume you used the tutorial on the OpenCV website to setup OpenCV. Once you run the command prompt and execute the command, it creates the environment variable for OpenCVbut it does not add it in the path. So if you go to the path and add the location of the bin in vc12 (vc14 for me), save it, and restart visual studio, it works.

like image 4
Abhiroop Tandon Avatar answered Oct 18 '22 20:10

Abhiroop Tandon