Ask Your Question

what static library contains fastFree()?

asked 2016-01-21 19:27:52 -0600

tksharpless gravatar image

I guess it is pointless to ask this. I have seen lots of similar questions but NO coherent answers. It seems that nobody who knows how the OpenCV libraries are organized is willing to tell.

Building with MSVC2013. Trying to link with static libraries of OCV 3.0, that was built and installed with MSVC2013.

My program (at peresent) does nothing more than declare a Mat. Get link error

unresolved external symbol "void __cdecl cv::fastFree(void *)" (?fastFree@cv@@YAXPAX@Z) referenced in function "public: __thiscall cv::Mat::~Mat(void)" (??1Mat@cv@@QAE@XZ)

Have confirmed that linker searched the OCV core library. So either core does not export fastFree(), or does so under a different mangled name than the one the compiler generated.

Is fastFree in some other library? And if so, why, for the love of heaven?

edit retag flag offensive close merge delete


DUMPBIN shows that my static opencv_core300d.lib has many references to "?fastFree@cv@@YAXPEAX@Z" but does not define it. That at least shows this is not a name-mangling issue.

tksharpless gravatar imagetksharpless ( 2016-01-21 20:14:39 -0600 )edit

1 answer

Sort by ยป oldest newest most voted

answered 2016-01-21 21:47:19 -0600

tksharpless gravatar image

OK, it seems that it fastFree() really is in opencv_cored.lib -- am I right?. The problem was badly obscured by a typically opaque & stupid MSVC configuration issue. The program was being compiled as 32 bit (by the MSVC wizard's default -- gnash --) and the libraries of course are x64. It took a bit of fooling to finally get the linker to admit that was a problem. Then it happily loaded the "missing" entries (and of course showed me a who le bunch more undefined & conflicted symbols, which were not so hard to sort out).

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2016-01-21 19:27:52 -0600

Seen: 3,181 times

Last updated: Jan 21 '16