CMake错误:QGLWidget:没有这个文件或目录。

4
我正在尝试使用cmake与Qt,但在构建时出现以下错误。
QGLWidget: No such file or directory

在我的 CMakeLists.txt 文件中,我有以下内容:

set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
find_package(Qt5Widgets)
qt5_use_modules(SHWidget Widgets)

这里有同样的问题,遗憾的是它可以在.pro中工作,但无法转换为cmake可接受的格式。你已经解决了你的问题吗? - cerkiewny
1个回答

3

QtOpenGL 模块的文档中所述:

警告: 除了 QGLWidget 类之外,此模块不应再用于新代码。

换句话说,您需要将 QtOpenGL 插件模块添加到您的构建中。


1
我该如何将QtOpenGL附加模块添加到我的构建中?我尝试了以下步骤:cmake_minimum_required(VERSION 2.8)set(CMAKE_INCLUDE_CURRENT_DIR ON)set(CMAKE_AUTOMOC ON)set(QT_USE_QTOPENGL TRUE)find_package(Qt5Widgets)find_package(Qt5OpenGL)find_package(OpenGL REQUIRED)qt5_use_modules(myprogram Widgets) - user2670468
@user2670468 需要写成 qt5_use_modules(myprogram Widgets OpenGL) 吗? - cmannett85
@user2670468 如果您认为这是错误的,那么您可能在其他方面也做错了,因为这是正确的:http://www.kdab.com/using-cmake-with-qt-5/。 - cmannett85
谢谢您的参考。 - user2670468
我觉得QGLWidget已经过时了。我更倾向于使用QWindow实现QOpenGLContext。你认为这是一个好的方法吗? - user2670468
@user2670468 我上一次使用QGLWidget是在v4.8时,那时它是处理事情的常规方式。对于v5+,我使用QML(例如https://qt-project.org/doc/qt-5.1/qtquick/scenegraph-openglunderqml.html) - 我甚至不再考虑基于QWidget的东西。我曾经非常愤世嫉俗地看待QML,但尝试过后,我现在是一个完全的拥护者! - cmannett85

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接