Hi, I’am starting with OpenCV and installed it, but I have followed different tutorials and tried many things but my problem is I have those errors every time I call an openCV function :
undefined reference to cv::fastFree(void*)'* *undefined reference to cv::Mat::deallocate()’
I have the same problem with imread() for exemple.
The programm is really simple : #include #include #include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(){
Mat image;// = imread(“image.jpg”);
cout << “Hello world!” << endl;
return 0;
}
For information, i’m using :
a protable version of codeblocks 20.03 32bit with mingw 64bit
I don’t know how to do this in codeblocks, but in the build options you should have a list of linked libraries, where you should have the opencv_[something].lib (or -lopencv_[something]) files.
Note that in order to run the app, it should have access to the OpenCV DLL files.
I agree, this definitely looks like the linker wasn’t told to link the opencv libraries.
you need opencv_core450.lib (or other version) at the very least.
you need to also make sure you’ve built opencv with mingw. the official prebuilt package is for visual studio and its compiler, and it’s not compatible with mingw/gcc.
cmake can help you build a visual studio project/solution.
or, if you have Visual Studio 2019 installed and can bear to run a command line:
open a command prompt
run "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\vc\Auxiliary\Build\vcvarsall.bat" x64 to set up the environment, so cl.exe can be found
(community edition has this script too, but I don’t know where)
run cl /EHsc /I p:\opencv\build\install\include YOURCODE.cpp /link /libpath:p:\opencv\build\install\x64\vc16\lib opencv_core450.lib opencv_highgui450.lib opencv_imgcodecs450.lib (with appropriate changes to paths)
that should also be possible if you only have VS community edition, or only MSVC without VS.
Thanks for your responses. I also think is that kind of problem but I don’t understand what I do wrong. I verified the config of my different tests and it seems good.
And the problem is I can’t use VS because it’s on a professionnal computer and I’m really really limited (it’s why I use a protable version of CodeBlocks…)
I tried for a few hours to use it with different versions of openCV and created CodeBlocks projects of openCV but I always have many “Mutex” errors when I try to compile it.
(ex : “Mutex in namespace std does not name a type”)
Thanks for all your responses that helped me a lot! My main problem is that I don’t have Admin rights on my professionnal computer. But I finnaly found a way to modify the PATH without rights, wich helped me to use correctly all my portbale applications (cmake, mingw…).
I made a test for my project and it works without errors!
Thanks again !!