Reputation: 497
I have a project that is using opencv 3.0, but when I try to run the .exe on another computer I get "This program cant start because opencv_world300.dll is missing from your computer".
I figured this was because I wasnt using static libraries, so I went into my project properties and into Release (which was the mode I was building in) and changed the following:
Linker>Input>Additional Libraries from $(OPENCV_DIR)\lib to $(OPENCV_DIR)\staticlib
then: Linker>Input>Additional Dependencies from
opencv_ts300.lib
opencv_world300.lib
to
IlmImf.lib
ippicvmt.lib
libjasper.lib
libjpeg.lib
libpng.lib
libtiff.lib
libwebp.lib
opencv_calib3d300.lib
opencv_core300.lib
opencv_features2d300.lib
opencv_flann300.lib
opencv_hal300.lib
opencv_highgui300.lib
opencv_imgcodecs300.lib
opencv_imgproc300.lib
opencv_ml300.lib
opencv_objdetect300.lib
opencv_photo300.lib
opencv_shape300.lib
opencv_stitching300.lib
opencv_superres300.lib
opencv_ts300.lib
opencv_video300.lib
opencv_videoio300.lib
opencv_videostab300.lib
which were all the libraries in there (I wasnt sure if I needed them even if I wasnt using them, so to be on the safe side I added them all).
I also changed C/C++>Code Generation>Runtime Library to Multithreaded(/Mt)
However now when I compile I get unresolved symbol errors. Have I done something wrong? Or do I need to do something else before I can get it compiled and running on another machine?
EDIT WITH MORE INFO:
Here is a screenshot of the unresolved external symbols:
As for other libraries I am using, I am using win32 libraries and standard libraries. Here is a list:
#include <windows.h>
#include <commctrl.h>
#include <shlobj.h>
#include <assert.h>
#include <string.h>
#include <vector>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
Upvotes: 0
Views: 1338
Reputation: 497
@Micka pointed out that I was missing the zlib.lib file from my additional dependencies. Adding it sorted everything out.
Upvotes: 1