Pottsiex5
Pottsiex5

Reputation: 497

How to switch to static libraries for OpenCV 3.0 so exe is standalone?

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: ERRORS

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

Answers (1)

Pottsiex5
Pottsiex5

Reputation: 497

@Micka pointed out that I was missing the zlib.lib file from my additional dependencies. Adding it sorted everything out.

Upvotes: 1

Related Questions