OpenCV:未解析的外部符号

Posted

技术标签:

【中文标题】OpenCV:未解析的外部符号【英文标题】:OpenCV: Unresolved External Symbol [duplicate] 【发布时间】:2019-07-16 03:52:02 【问题描述】:

在我的头文件中声明 cv::Mat mat 时。我遇到一个错误:“未解析的外部符号”

我已经包含了这些:

#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

版本:QT 4.2.0 |打开简历 4.1.0

【问题讨论】:

展示你的 .pro.... 未解析的符号是 链接器 错误,而不是编译器错误。它表明您的项目设置、makefile 或类似文件需要指定 OpenCV 库。 【参考方案1】:

在大多数情况下,包括头文件是不够的(只有在头文件使用非标准功能来告诉编译器链接哪个库时)。

您需要告诉链接器添加相应的 .lib 文件。 在 Visual Studio 中,您可以在项目属性 -> 链接器 -> 附加库中执行此操作。 在 OpenCV 中,如果您下载了 prepuilt 版本,您可能会发现这些库靠近标头所在的位置。 .lib 文件需要与您用于工作的编译器版本相匹配,例如。要使用 2019 编译器,他们需要使用 2017 或 2015 构建。

【讨论】:

【参考方案2】:

首先要确定opencv的安装。检查它使用:

pkg-config --modversion opencv

然后将以下内容添加到您的 .pro 文件中:

 INCLUDEPATH += /usr/local/include/opencv // for path

 LIBS += `pkg-config --cflags --libs opencv` // for libraries

完成这些后,opencv 库应该可以在 Qt 中的任何 cpp 文件中工作

【讨论】:

以上是关于OpenCV:未解析的外部符号的主要内容,如果未能解决你的问题,请参考以下文章

链接 OpenCV 失败,LNK 2019 未解析的外部符号

opencv/visual studio:错误 LNK2019:未解析的外部符号

错误 LNK2019:未解析的外部符号 opencv

Qt 与 OpenCV:LNK2019:未解析的外部符号和未找到文件 mainwindow.obj

(OpenCV)得到一个“未解决的外部符号”错误[重复]

Qt Creator LNK2019:使用 OpenCV 无法解析的外部符号