我有QtProject使用了一些OpenCV,我想从中使用.exe在其他计算机上运行它。
windeployqt.exe即使对于Qt库也无法做到,但如果我手动复制库,Qt正在运行。但是,我不知道如何让OpenCV工作。 我的.pro文件看起来像这样。
#-------------------------------------------------
#
# Project created by QtCreator ...
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = name01
TEMPLATE = app
INCLUDEPATH += C:/opencv-qt/install/include
LIBS += -L"C:/opencv-qt/install/x86/mingw/bin"
LIBS += -lopencv_core310 -lopencv_highgui310 -lopencv_imgproc310 -lopencv_imgcodecs310
SOURCES += main.cpp\
widget.cpp
HEADERS += widget.h
FORMS += widget.ui
在这种情况下,当我尝试运行.exe时,它说我的计算机中缺少libopencv_imgcodecs310。 我想我必须改变路径,所以我尝试了这个:
INCLUDEPATH += /include
LIBS += -L"/bin"
LIBS += -lopencv_core310 -lopencv_highgui310 -lopencv_imgproc310 -lopencv_imgcodecs310
并复制bin并将文件夹包含到项目中。但它甚至没有编译错误消息
cannot find -lopencv_core310
cannot find -lopencv_highgui310
cannot find -lopencv_imgproc310
cannot find -lopencv_imgcodecs310
我在其他论坛上发现了一些关于它的问题,但没有回答。
我没有时间,所以我现在就来解决这个问题。 Qt 5.8发布了,这不应该是问题,但我的应用程序变得更大,现在.pro看起来像这样:
#-------------------------------------------------
#
# Project created by QtCreator ...
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
TARGET = name01
TEMPLATE = app
INCLUDEPATH += C:/opencv-qt/install/include
LIBS += -L"C:/opencv-qt/install/x86/mingw/bin"
LIBS += -lopencv_core310 -lopencv_highgui310 -lopencv_imgproc310 -lopencv_imgcodecs310
SOURCES += main.cpp\
widget.cpp\
qcustomplot.cpp
HEADERS += widget.h
qcustomplot.h
FORMS += widget.ui
所以现在即使在我的电脑上也无法正常工作。 如果我尝试运行.exe,它会说:
the procedure entry point __gxx_personality_v0 could not be located
in the dynamic link library libstdc++-6.dll
我也尝试过Dependency Walker,它只是说它找不到libopencv_imgprocs310.dll,libopencv_core310.dll和libopencv_imgcodecs310.dll,即使它们与.exe位于同一个文件夹中。
我不知道我现在应该如何处理这个问题,或者我是否应该制作一个新问题,对于任何困难都很抱歉。
答案 0 :(得分:0)
当您的OpenCV lib文件仍在C:/ opencv -qt / install / x86 / mingw / bin并且代码编译时,请尝试将代码使用的.dll文件复制到包含exe文件的文件夹中。或者将C:/ opencv -qt / install / x86 / mingw / bin添加到环境变量中。