【发布时间】:2018-01-30 16:38:05
【问题描述】:
我是 OpenCV / QT 环境的新手(以及一般的编程)。我正在尝试运行此代码:
https://github.com/Terranlee/Realtime_EVM
有人可以逐步告诉我需要安装/编译什么才能在 Windows 10 上运行此脚本吗?不确定要安装什么版本,或者它是否重要。
我已尝试按照此处 (https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows) 的指示进行操作,但我不断收到“未定义引用”错误,这意味着我没有正确引用库...或者我需要以某种方式编辑代码以指向我的库,但我不太确定要编辑什么以及如何编辑。
提前谢谢,请原谅我的笨拙!
-杰
回复回答
我根据 wiki 指南使用以下命令使用 CMake 编译了 OpenCV:
mingw32-make -j 8
mingw32-make 安装
完成后,我打开 Qt Creator 并通过下载 zip 文件打开 Github EVM 代码,然后将其解压缩并打开 rvm.pro 文件。
没有做任何更改,我尝试构建代码,我的第一个错误是它找不到“opencv_world310.dll”库。
我搜索它并在“E:\opencv\build\x64\vc14\bin”目录中找到了本地文件,因此我编辑了 rvm.pro 文件以在该目录中查找,如下所示:
win32 {
OPENCVFOLDER = E:/_CODE_/_EXTERNAL_/OpenCV/my_git_build/
OPENCVVERSION = 310
INCLUDEPATH += E:\opencv\build\install\include
INCLUDEPATH += E:\opencv\build\x64\vc14\lib
CONFIG(release, debug|release) {
LIBS += -LE:\opencv\build\x64\vc14\lib
LIBS += -lopencv_world$${OPENCVVERSION}
}
CONFIG(debug, debug|release) {
DEFINES += DEBUG_MODE
LIBS += -LE:\opencv\build\x64\vc14\lib
LIBS += -lopencv_world$${OPENCVVERSION}d
}
这消除了最初的错误,但后来我遇到了几个“未定义的引用”问题:
C:\Eulerian Real-Time OpenCV build\Realtime-Video-Magnification-master\build-rvm-Desktop_Qt_5_9_0_MinGW_32bit-Debug\debug\main.o:-1:在函数“ZN2cv6StringD1Ev”中:
E:\opencv\build\include\opencv2\core\cvstd.hpp:664:错误:未定义对 `cv::String::deallocate()' 的引用
C:\Eulerian Real-Time OpenCV build\Realtime-Video-Magnification-master\build-rvm-Desktop_Qt_5_9_0_MinGW_32bit-Debug\debug\main.o:-1:在函数“ZN2cv6StringaSERKS0_”中:
E:\opencv\build\include\opencv2\core\cvstd.hpp:672:错误:未定义对 `cv::String::deallocate()' 的引用
C:\Eulerian Real-Time OpenCV build\Realtime-Video-Magnification-master\src\main\threads\CaptureThread.h:42: error: undefined reference to `cv::VideoCapture::~VideoCapture()'
......这些问题大约有 50 个,所以我不会全部列出。
仅仅是正确引用库的问题吗?
总之,我只是尝试使用 Qt Creator、mingGW、CMake 和 OpenCV 运行 Github 代码。请让我知道我需要如何编辑 .pro 文件以正确链接库。
我的 OpenCV 在 e:\opencv
再次感谢您的帮助和耐心等待!
-杰
【问题讨论】:
标签: c++ qt opencv qt-creator