Qt Creator LNK2019:使用 OpenCV 无法解析的外部符号
Posted
技术标签:
【中文标题】Qt Creator LNK2019:使用 OpenCV 无法解析的外部符号【英文标题】:Qt Creator LNK2019:Unresolved external symbol using OpenCV 【发布时间】:2014-11-06 11:33:48 【问题描述】:过去两天我一直在尝试使用OpenCV
在Qt
中编译一个项目,但不知道为什么没有。我的应用程序只有main.cpp
、widget.cpp
和widget.h
这是我的 .pro 文件
QT += core gui opengl
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = FaceDetect
TEMPLATE = app
SOURCES += main.cpp\
widget.cpp
HEADERS += widget.h
FORMS += widget.ui
INCLUDEPATH += C:/opencv/build/include/
LIBS += -LC:/opencv/build/x64/vc10/lib/
-libopencv_core2410
-libopencv_highgui2410
-libopencv_imgproc2410
-libopencv_features2d2410
-libopencv_calib3d24610
这些是我不断遇到的错误:
main.obj:-1: error: LNK2019: unresolved external symbol "public: void __thiscall cv::Mat::deallocate(void)" (?deallocate@Mat@cv@@QAEXXZ) referenced in function "public: void __thiscall cv::Mat::release(void)" (?release@Mat@cv@@QAEXXZ)
moc_widget.obj:-1: error: LNK2001: unresolved external symbol "public: void __thiscall cv::Mat::deallocate(void)" (?deallocate@Mat@cv@@QAEXXZ)
moc_widget.obj:-1: error: LNK2001: unresolved external symbol "public: void __thiscall cv::Mat::deallocate(void)" (?deallocate@Mat@cv@@QAEXXZ)
谁能解释一下我为什么以及如何摆脱这些?
谢谢!
【问题讨论】:
出现错误的代码是什么? 确保这不是问题之一:检查是否进行了调试构建,因为 Visual Studio 的 OpenCV 的调试库名称以“d”结尾,您可以查看我关于如何与调试和发布链接***.com/questions/20588440/… 此外,您似乎使用 x64 版本的 OpenCV,它不适用于为 32 位构建的 Qt(并且使用 VS2010 构建的官方下载页面 Qt 是 32 位版本) 确保-libopencv_core2410
等是对库名称的正确引用。图书馆叫什么名字?
试试 -lopencv_xxx 代替 -libopencv_xxx 等
另外,如果叫facedetect,你也需要opencv_objdetect。
【参考方案1】:
在 LIBS 中每个文件的末尾添加一个斜线并保存。
LIBS += -LC:/opencv/build/x64/vc10/lib/
-libopencv_core2410 \
-libopencv_highgui2410 \
-libopencv_imgproc2410 \
-libopencv_features2d2410 \
-libopencv_calib3d24610
现在右键单击项目文件夹并单击“运行 qmake”,然后“构建”它,这将“制作”文件并考虑在 .pro 文件中所做的更改。
【讨论】:
以上是关于Qt Creator LNK2019:使用 OpenCV 无法解析的外部符号的主要内容,如果未能解决你的问题,请参考以下文章
QT Creator - LNK2019 和 LNK1120 错误 [重复]
Qt Creator 链接器错误:LNK1104:无法打开 fil 'usb-1.0.lib' - Windows
CUDA、Win7、Qt Creator - LNK1104:无法打开文件“<cuda 文件>.obj”
Qt Creator 链接器错误:LNK1104:无法打开文件“opencv_core249d.lib”