尝试从 Github 编译 OpenCV QT 代码时出错
Errors trying to compile OpenCV QT code from Github
我是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:
明W32-制造-J 8
明W32-制造安装
完成此操作后,我打开了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:opencvbuildinstallinclude
INCLUDEPATH += E:opencvbuildx64vc14lib
CONFIG(release, debug|release) {
LIBS += -LE:opencvbuildx64vc14lib
LIBS += -lopencv_world$${OPENCVVERSION}
}
CONFIG(debug, debug|release) {
DEFINES += DEBUG_MODE
LIBS += -LE:opencvbuildx64vc14lib
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: error: undefined reference to 'cv::String::d eallocate()'
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: error: undefined reference to 'cv::String::d eallocate()'
C:\Eulerian Real-Time OpenCV build\Realtime-Video-Magnification-master\src\main\threads\CaptureThread.h:42: error: undefined reference 'cv::VideoCapture::~VideoCapture()'
......这些问题大约有 50 个,所以我不会一一列举。
这仅仅是正确引用库的问题吗?
总之,我只是尝试使用Qt Creator,mingGW,CMake和OpenCV运行Github代码。请让我知道我需要如何编辑 .pro 文件以正确链接库。
我的 OpenCV 在 e:\opencv 中
再次感谢您的帮助和耐心等待!
-杰
关于您目前正在采取的步骤的信息很少。你想使用Visual Studio/mingw吗?以下是一些提示:
- 您可以使用Qt Creator打开专业文件
- 您可以使用
qmake -spec <spec of the Visual Studio to use> -tp vc
生成与Visual Studio兼容的解决方案,以选择spec
查看此答案。
使用其中任何一个,您都应该设置Qt包含/库。
该项目的坏处是,如果您查看.pro
文件,它会显式使用 Linux 友好的包含路径:
INCLUDEPATH += /usr/local/include
/usr/local/include/opencv
/usr/local/include/opencv2
LIBS += `pkg-config --libs opencv` -ldl
因此,如果您使用的是Qt Creator,则必须在Visual Studio或.pro
文件中将包含/库路径添加到OpenCV中。例如,您在Qt/OpenCV上的帖子中使用的链接具有Windows友好的链接:
LIBS += D:opencv-buildbinlibopencv_core320.dll
LIBS += D:opencv-buildbinlibopencv_highgui320.dll
LIBS += D:opencv-buildbinlibopencv_imgcodecs320.dll
LIBS += D:opencv-buildbinlibopencv_imgproc320.dll
LIBS += D:opencv-buildbinlibopencv_features2d320.dll
LIBS += D:opencv-buildbinlibopencv_calib3d320.dll
因此,请更详细地解释到目前为止您做了什么,以及究竟缺少哪些参考文献(Qt/OpenCV)。
- 将 Qt 代码从 createTextureFromId 更新为 createTextureFromNativeObje
- 无法在这个基本的Qt代码片段中找到错误,但我被告知它肯定存在?
- 使用其他编译器编译QT代码
- 为什么我在有关文件编码格式的QT代码中获得了混乱的代码
- 寻求QT代码的解释
- 尝试从 Github 编译 OpenCV QT 代码时出错
- 如何将 Double 从 Qt c++ 代码传递到 QML 代码
- 尝试在代码块中编译 Qt/C++ 代码
- RTKlib(C库)与QT(C++代码)
- 如何在QML QTLocation图上添加C QT代码的POI
- 获取 QT 代码的普通C++实现
- 链接 Qwt 库时 Qt 代码中的分段错误
- QT代码的组织
- Python中的Qt C++代码,PyQt4
- 避免在使用ccache / clang编译Qt代码时出现多余的警告
- 如何将Qt代码分解为单独的部分
- 在Linux(Ubuntu 13.10和14.04)下运行Qt C++代码,而无需QtCoreApplication/Q
- Qt代码编辑器在右侧的区域中显示行号
- 如何优化涉及大量sql查询的Qt代码块
- 在Linux中编译windows Qt代码以及库中的更改