我是Ubuntu-Qt-OpenCV-OpenGL世界的新手(但大学在某种程度上假设我已经知道这一切多年了)而且我在运行关于OpenGL的QT示例时遇到了麻烦 .

例如,在立方体示例中,我得到的错误是:

No rule to make target 'objectloader.cpp', needed by 'objectloader.o'.  Stop.

这是文件夹,您可以在其中检查.pro,.cpp, Headers 和所有内容 . 我只编辑了cube.pro . https://drive.google.com/file/d/1-H6uI3Tf9xgNDTLjNmWMc2GE5Il8ZvMI/view?usp=sharing(顺便说一下,没有启动shadowbuild)

这是我所有已安装软件包的列表,以防我错过了什么

sudo apt list --installed
https://drive.google.com/file/d/1EbL2cojkwPAejefhrROLsGigEHMy4ua_/view?usp=sharing

我目前正在与:

  • 操作系统:Ubuntu 18.04.1 LTS

  • 内核:4.16.0-041600-通用

  • Cuda:基于Tue_Jun_12_23:07:04_CDT_2018 Cuda编译工具,9.2版,V9.2.148

  • gcc :( Ubuntu 7.3.0-27ubuntu1~18.04)7.3.0

  • QMake:版本3.1

  • Qt版本:5.9.6

  • OpenGL版本:3.0 Mesa 18.0.5

  • OpenCV版本:4.0.0(通过命令cat /home/pablo/OpenCV-3.0.0/OpenCV-3.0.0-master/opencv/build/OpenCVConfig.cmake获得)

据我了解,示例意味着一旦你尝试它们就会工作,所以我不认为问题可能是一个丢失的文件或类似的东西,但我找不到'objectloader.cpp'也不是'objectloader.o'文件 .

我认为这个问题可能是OpenCV 4安装在另一个文件位置而不是以前的OpenCV版本引起的,因为几乎所有'只需在控制台上输入'代码就不会直接工作

pkg-config --modversion opencv
Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found

谢谢大家花时间帮助我,我试着把我能想到的全部内容包括在内,但是在过去的三天里跟踪我所有的一些教程和例子都很难 . 如果还有其他我可以在这里包含的内容,请直接询问 . 谢谢 .

这是cube.pro文件

QT       += core gui widgets

TARGET = cube
TEMPLATE = app

SOURCES += main.cpp

SOURCES += \
    mainwidget.cpp \
    geometryengine.cpp

HEADERS += \
    mainwidget.h \
    geometryengine.h

RESOURCES += \
    shaders.qrc \
    textures.qrc

LIBRARYDIRS = src/Library
LIBRARYDIRS += src/TheOtherLibrary

# install
target.path = $$[QT_INSTALL_EXAMPLES]/opengl/cube
INSTALLS += target

QT -= gui

CONFIG += c++11 console
CONFIG -= app_bundle

# The following define makes your compiler emit warnings if you use
# any feature of Qt which as been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
INCLUDEPATH += /usr/include
INCLUDEPATH += /usr/local/include
INCLUDEPATH += /usr/local/include/opencv4
LIBS += -lGL -lGLEW -lglfw -lglut -lGLU -lassimp -ldl -lm -lstdc++fs
LIBS += -I/usr/local/include/opencv4 -I/usr/local/include/opencv4 -L/usr/local/lib -lopencv_gapi -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_photo -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_surface_matching -lopencv_tracking -lopencv_video -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_xfeatures2d -lopencv_shape -lopencv_ml -lopencv_ximgproc -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_flann -lopencv_xphoto -lopencv_imgproc -lopencv_core

SOURCES += \
        main.cpp \
    objectloader.cpp \
    model.cpp \
    glad.c

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

HEADERS += \
    objectloader.h \
    stb_image.h \
    shader_m.h \
    camera.h \
    model.h \
    mesh.h \
    glad.h