【问题标题】:Linker error LNK2019 (unresolved symbol) with OpenCV 2.4, CvBlob library, and Visual Studio 2012 RCOpenCV 2.4、CvBlob 库和 Visual Studio 2012 RC 的链接器错误 LNK2019(未解析的符号)
【发布时间】:2012-07-24 00:12:24
【问题描述】:

过去一两个小时我一直在试图解决这个问题,但似乎无法解决问题。我将 OpenCV 与 MS VS 2012 RC 一起使用,到目前为止,它运行良好(一个错误处理较新的 Mat 容器,但其他方面都很好)。我有一个以前编写的应用程序,我正在尝试移植(来自 GCC/G++),它使用了来自here 的 cvblob.dll 库。我已经用 VS2012 重新编译了 cvblob 库(我以前的版本是用 MinGW 编译的,并且工作正常),并设法创建了一个 DLL 和一个导入库 .LIB。

应用程序编译正确,但是我使用 cvblob 库的地方现在是我的错误来源,因为链接器在库中找不到 cvLabel 函数的符号。这是我从 VS2012 得到的完整错误消息:

ConsoleApplication1.cpp 1> 生成代码... 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 unresolved externals

我不确定这是否是 cvblob 库本身的问题,我当前的二进制文件,或者只是我用来编译它的过程。我很乐意应要求提供我能提供的任何信息。提前感谢您的建议!

【问题讨论】:

    标签: opencv visual-studio-2012


    【解决方案1】:

    您显然没有在项目设置中链接所需的库。尝试在项目的链接器属性中添加所有 OpenCV/CvBlob 库。见docs

    也请看this discussion

    【讨论】:

    • CvBlob.dll 列在我的附加依赖项中。这就是让这件事如此令人困惑的原因。我尝试使用 .dll 版本,然后制作自己的 .lib 来配合它。
    • 我在发帖前搜索/研究时通读了该讨论。不幸的是,从中获得的智慧不足以解决我的问题。好消息是我找到了另一个解决方案,通过使用包含在 OpenCV 的 features2d 库中的 SimpleBlobDetector 类,并根据我自己的需要对其进行扩展。由于我与 OpenCV 库本身没有任何链接问题,因此我的项目能够继续。
    猜你喜欢
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-15
    相关资源
    最近更新 更多