qt - 带有OpenCV库的编译错误Qt Creator(ubuntu)

标签 qt opencv ubuntu compiler-errors

我试图用来自OpenCV的一些库来设置Qt IDE,这些库是我用cmake从源代码构建的。我不确定这是否是因为我包含路径或其他内容的原因,但是即使多次更改路径后也出现了此编译错误。我正在使用GCC ARM 64位编译器,Qt 5.9.5,opencv 4.4.0

g++ -c -pipe -g -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_CORE_LIB -I../test -I. -isystem /usr/local/include -isystem /usr/local/include -isystem /usr/include/aarch64-linux-gnu/qt5 -isystem /usr/include/aarch64-linux-gnu/qt5/QtCore -I. -I/usr/lib/aarch64-linux-gnu/qt5/mkspecs/linux-g++ -o main.o ../test/main.cpp
In file included from /usr/local/include/opencv2/core.hpp:54:0,
                 from /usr/local/include/opencv2/videoio.hpp:46,
                 from ../test/main.cpp:1:
/usr/local/include/opencv2/core/base.hpp:52:10: fatal error: opencv2/opencv_modules.hpp: No such file or directory
 #include "opencv2/opencv_modules.hpp"
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Makefile:359: recipe for target 'main.o' failed
make: *** [main.o] Error 1
11:24:40: The process "/usr/bin/make" exited with code 2.
Error while building/deploying project test (kit: Desktop)
When executing step "Make"
这是我的.pro文件路径
INCLUDEPATH+= /usr/local/include
LIBS+= -L"/usr/local/lib"
LIBS += -lopencv_calib3d
LIBS += -lopencv_core
LIBS += -lopencv_features2d
LIBS += -lopencv_flann
LIBS += -lopencv_highgui
LIBS += -lopencv_imgcodecs
LIBS += -lopencv_imgproc
LIBS += -lopencv_ml
LIBS += -lopencv_objdetect
LIBS += -lopencv_photo
LIBS += -lopencv_shape
LIBS += -lopencv_stitching
LIBS += -lopencv_superres
LIBS += -lopencv_video
LIBS += -lopencv_videoio
LIBS += -lopencv_videostab
更新***
我已经将我的.pro文件更改为
INCLUDEPATH+=/usr/local/include/opencv4
LIBS+='pkg-config --cflags --libs opencv4'
因为编译器找不到opencv_modules.hpp,所以我不得不将其直接从构建文件复制到我的/usr/local/include/opencv4/opencv2文件夹中。接下来,我有一个func()超出范围的错误,我必须通过执行#include "opencv2/opencv.hpp" 来解决,而不是手动添加头文件。
现在我的新编译错误是error: pkg-config --cflags --libs opencv4: No such file or directory最终更新*****
问题出在LIBS+='pkg-config --cflags --libs opencv4'中,它不应该是'而是`。现在一切正常。非常感谢Yunus Temurlenk的帮助

最佳答案

这是您应检查并遵循的步骤:

  • 在安装opencv之前,请确保您已正确安装基本操作系统库,这在here step2中主要进行了介绍。
  • 也不要忘记在cmake期间启用标志-D WITH_QT=ON
  • 我看到您将opencv安装到usr/local中,这是建议的方式。安装opencv之后,通过终端上的命令检查版本:pkg-config --modversion opencv4(或仅取决于您的配置的opencv)

  • 确保此输出正常。
  • 将库链接到Qt的正确方法:

  • INCLUDEPATH += /usr/local/include/opencv4
    LIBS += `pkg-config --cflags --libs opencv4`
    

    关于qt - 带有OpenCV库的编译错误Qt Creator(ubuntu),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63497905/

    相关文章:

    c++ - Qt 测试 : error symbol(s) not found when instantiating object in test project

    从函数返回矩阵的正确方法

    opencv - 使用 Kinect 检测地板上的物体

    node.js - APM 在公司代理后面不起作用

    qt - 设置QComboBox的选定项目

    qt - 如何在 Ubuntu 上使用 QT 库

    c++ - 为什么这个范围会爆炸

    shell - 在 Ubuntu 中使用 sed 将字符串替换为特殊字符值

    php - 在单独的进程中运行函数以避免段错误

    c++ - C++类对象双向初始化的实现