我花了最后一两个小时试图解决这个问题,似乎无法做到正确。我正在使用OpenCV与MS VS 2012 RC,并且到目前为止它已经运行得很好(一个处理较新的Mat容器的错误,否则很好)。我有一个以前编写的应用程序,我试图移植(来自GCC / G ++),它使用了来自here的cvblob.dll库。我用VS2012重新编译了cvblob库(我之前的版本是用MinGW编译的,并且运行完美),并设法创建了一个DLL和一个导入库.LIB。
应用程序正确编译,但我使用cvblob库的地方现在是我的错误来源,因为链接器无法在库中找到cvLabel函数的符号。这是我从VS2012获得的完整错误消息:
ConsoleApplication1.cpp 1 GT;生成代码...... 1> imageinput.obj:错误LNK2019:未解析的外部符号_cvLabel在函数“public:class std :: vector,class std :: allocator>> _ thiscall ImageInput :: getROI(class cv :: Mat, class cv :: Mat)“(?getROI @ ImageInput @@ QAE?AV?$ vector @ V?$ Rect @ H @ cv @@ V?$ allocator @ V?$ Rect_ @ H @ cv @@ @std @@@ STD @@ @ VMAT CV @@ @ 0 Z) 1> C:\ Users \ Jake \ Documents \ Visual Studio 2012 \ Projects \ ConsoleApplication1 \ Debug \ ConsoleApplication1.exe:致命错误LNK1120:1个未解析的外部
我不确定这是cvblob库本身的问题,我当前的二进制文件,还是我用来编译它的过程。我很乐意根据要求提供任何信息。提前感谢您的建议!
答案 0 :(得分:1)
您显然没有在项目设置中链接所需的库。尝试在项目的链接器属性中添加所有OpenCV / CvBlob库。请参阅docs。
另请参阅this discussion。