Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Qt Creator在链接到OpenCV时给了我一个错误_C++_Qt_Opencv_Qt Creator_Qmake - Fatal编程技术网

C++ Qt Creator在链接到OpenCV时给了我一个错误

C++ Qt Creator在链接到OpenCV时给了我一个错误,c++,qt,opencv,qt-creator,qmake,C++,Qt,Opencv,Qt Creator,Qmake,我在网上有一个简单的OpenCV程序。我正在尝试用Qt-creator编译它。源代码如下(main.cpp): 当我构建项目时,我得到以下链接器错误(加上其他类似错误): 但是,当使用简单的CMake文件时,它可以完美地构建和运行。我的CMakeLists.txt非常简单: cmake_minimum_required(VERSION 2.8) project( DisplayImage ) find_package( OpenCV REQUIRED ) add_executable( Disp

我在网上有一个简单的OpenCV程序。我正在尝试用Qt-creator编译它。源代码如下(main.cpp):

当我构建项目时,我得到以下链接器错误(加上其他类似错误):

但是,当使用简单的CMake文件时,它可以完美地构建和运行。我的CMakeLists.txt非常简单:

cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage main.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )

是否需要设置其他路径?

首先,检查是否已安装OpenCV的所有依赖项。您可能还需要安装
FFmpeg

然后替换:

LIBS += -L/usr/local/lib -lopencv_core -lopencv_imgcodecs -lopencv_highgui -lopencv_shape -lopencv_videoio
据此:

LIBS += -L/usr/local/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs -lopencv_shape -lopencv_videoio
您还需要添加特定的OpenCV配置:

CONFIG += opencv
或者:

unix: CONFIG += link_pkgconfig
unix: PKGCONFIG += opencv
这些小改动对我很有用。

问题解决了

发生在我身上的原因是我首先

sudo apt install libopencv-highgui-dev

然后从源代码处编译OpenCV 2.4.13并安装它(因为我需要的正是这个版本)


通过cmake,它链接到OpenCV 4.1.0,但通过Qt Creator,它链接到OpenCV 2.4.13。解决方案是卸载OpenCV并仅安装版本2.4.13。

我也在使用OpenCV处理Qt,我使用以下行将OpenCV添加到Qt中
.pro
文件:

INCLUDEPATH += /usr/local/include/opencv
LIBS += `pkg-config --cflags --libs opencv`
您还应通过终端上的以下设备检查opencv安装:

pkg-config --modversion opencv 
如果出现错误,则说明安装有问题

编辑:如果您安装了opencv4.x.x,则应使用
“opencv4”
更改上面命令中的单词
“opencv”
,尝试以下操作:

CONFIG += opencv


INCLUDEPATH += /usr/local/include/opencv4

所以,让我理解一下-问题是CMake文件链接可以工作,而.Pro文件却不能。是吗?是的,没错。然后,为此我添加了qmake标签。Qt Creator与CMake和qmake都能很好地协同工作。您看到的差异是因为qmake使用了.pro文件。我可能错了,但您需要向您的pro文件中添加类似于
QT+=core
QT-=gui
QT+=widgets
的内容。请尝试:LIBS+=
pkg config opencv--LIBS
,谢谢您的回答。不幸的是,在尝试这些更改之后,我仍然会遇到相同的错误。
sudo apt install libopencv-dev
INCLUDEPATH += /usr/local/include/opencv
LIBS += `pkg-config --cflags --libs opencv`
pkg-config --modversion opencv 
CONFIG += opencv


INCLUDEPATH += /usr/local/include/opencv4