I build the OpenCV 3.0 from source. And with the contrib repo for some extra modules. And I manually setup my VS2013 project to use the generated lib files.
My code is simple for now:
#include "opencv2\core\core.hpp"
#include "opencv2\imgcodecs\imgcodecs.hpp"
int _tmain(int argc, _TCHAR* argv[])
{
cv::Mat image = cv::imread("img.jpg");
return 0;
}
But it gave me these errors when in VS 2013 community version:
I see similar thread, they said it is caused by the x86/x64 issue. But My project is already x86. And the OpenCV I built is also targeting x86 (see below). What reason could it be?
ADD 1
The OpenCV 3.0 INSTALL
project generates the following lib directory:
So it is indeed a x86
one.
My lib path is configured to the above path:
And I added all the *d.lib
files.
And below is my VC project's Configuration Manager
So it is indeed x86
, too.
Where could be wrong?
ADD 2
I manually searched for the fastFree()
function. It is defined in the opencv_core300d.lib
file. I use the dumpbin /symbols
command to check the symbols. And I find its name is mangled exactly as fastFree@cv@@YAXPAX@Z
. So why it cannot be found?