【发布时间】:2025-12-21 13:35:11
【问题描述】:
参考了下面的问题,轻而易举的设置了QT4.7.0,QtCreator 2.0.0 for openCV2.3
OpenCV2.3 and QTCreator 现在,对于我尝试使用的所有 OpenCV 函数,我不断收到以下错误和更多错误,尽管 Qt 自己的智能感知会在我键入时向我显示函数。
对 cv::imread("img.jpg") 的未定义引用 对 cv::namedWindow("window") 的未定义引用
我在这里做错了什么?
在 Intel core 2 Duo 机器上使用 Win7 X86。
.Pro 文件包含以下内容
#-------------------------------------------------
#
# Project created by QtCreator 2011-08-28T00:44:27
#
#-------------------------------------------------
QT += core
QT -= gui
TARGET = myQtConsoleProject
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
INCLUDEPATH += H:/OpenCV2.3/build/include
INCLUDEPATH += H:/OpenCV2.3/build/include/opencv
LIBS += H:/OpenCV2.3/build/x86/vc9/lib/opencv_calib3d230.lib
LIBS += H:/OpenCV2.3/build/x86/vc9/lib/opencv_contrib230.lib
LIBS += H:/OpenCV2.3/build/x86/vc9/lib/opencv_core230.lib
LIBS += H:/OpenCV2.3/build/x86/vc9/lib/opencv_features2d230.lib
LIBS += H:/OpenCV2.3/build/x86/vc9/lib/opencv_flann230.lib
LIBS += H:/OpenCV2.3/build/x86/vc9/lib/opencv_highgui230.lib
LIBS += H:/OpenCV2.3/build/x86/vc9/lib/opencv_imgproc230.lib
LIBS += H:/OpenCV2.3/build/x86/vc9/lib/opencv_objdetect230.lib
LIBS += H:/OpenCV2.3/build/x86/vc9/lib/opencv_video230.lib
我得到的错误如下
debug/main.o: In function `main':
G:\QT Projects\myQtConsoleProject-build-desktop/../myQtConsoleProject/main.cpp:6: undefined reference to `cv::imread(std::string const&, int)'
G:\QT Projects\myQtConsoleProject-build-desktop/../myQtConsoleProject/main.cpp:7: undefined reference to `cv::namedWindow(std::string const&, int)'
G:\QT Projects\myQtConsoleProject-build-desktop/../myQtConsoleProject/main.cpp:8: undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)'
G:\QT Projects\myQtConsoleProject-build-desktop/../myQtConsoleProject/main.cpp:8: undefined reference to `cv::imshow(std::string const&, cv::_InputArray const&)'
G:\QT Projects\myQtConsoleProject-build-desktop/../myQtConsoleProject/main.cpp:9: undefined reference to `cv::waitKey(int)'
debug/main.o: In function `~Mat':
h:/OpenCV2.3/build/include/opencv2/core/mat.hpp:297: undefined reference to `cv::fastFree(void*)'
debug/main.o:h:/OpenCV2.3/build/include/opencv2/core/mat.hpp:381: undefined reference to `cv::Mat::deallocate()'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\myQtConsoleProject.exe] Error 1
mingw32-make: *** [debug] Error 2
The process "E:/Qt/2010.04/mingw/bin/mingw32-make.exe" exited with code %2.
Error while building project myQtConsoleProject (target: Desktop)
When executing build step 'Make'
更新: 正如Alexdim 所指出的,如果Qt 仍然无法识别这些功能,我将需要重建OpenCV,事实证明这是真的。作为这个问题的答案。在WIN7 x86下重建OpenCV。我使用 minGW 来纠正问题。可能这也需要为 VC++ 完成。无论如何……很幸运现在能够使用 OpenCV 和 Qt!
【问题讨论】:
-
这可能会有所帮助 - 尝试在 .Pro 文件中重复
LIBS += ...行块 3 次。 -
@Andrey,我没明白......
-
我会解释它是否能解决问题。但我怀疑这不是一个真实的案例。
-
@Andrey。如果你的意思是添加所有的 lib 文件,我做了大部分。让我看看是否添加所有作品。
-
@Andrey,还是不行!