Cmake cannot find QGLWidget

Cmake cannot find QGLWidget

本文关键字:QGLWidget find cannot Cmake      更新时间:2023-10-16

几年前我在Windows上的QtCreator中编写了一个简单的弹跳球程序,现在我正在尝试使用CMakeLists而不是Qt项目文件在Linux(Ubuntu 14.04)上重建它。我的CMakeLists.txt文件(松散地基于这个问题中的cmake文件)如下。

cmake_minimum_required ( VERSION 2.6 )
project ( BouncyBall )
find_package ( Qt4 COMPONENTS QtGui QtOpenGL REQUIRED )
set (QT_USE_QTOPENGL TRUE)
include(${QT_USE_FILE})
add_definitions(${QT_DEFINITIONS})
include_directories( ${QT_QTOPENGL_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR} )
find_package ( Bullet REQUIRED )
add_executable ( BouncyBall main.cpp BouncyBall.cpp BulletWidget.cpp )
target_link_libraries( BouncyBall ${QT_LIBRARIES} ${BULLET_LIBRARIES} )

Cmake 配置并生成构建文件没有任何错误,但编译失败并出现以下错误:

[ 33%] Building CXX object CMakeFiles/BouncyBall.dir/main.cpp.o
/usr/bin/c++   -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_OPENGL_LIB -isystem /usr/include/qt4 -isystem /usr/include/qt4/QtOpenGL -isystem /usr/include/qt4/QtGui -I/home/user/Programs/BuildArea/Games/BouncyBall    -o CMakeFiles/BouncyBall.dir/main.cpp.o -c /home/user/Programs/Games/BouncyBall/main.cpp
In file included from /home/user/Programs/Games/BouncyBall/main.cpp:2:0:
/home/user/Programs/Games/BouncyBall/BulletWidget.h:4:30: fatal error: QtOpenGl/QGLWidget: No such file or directory
 #include <QtOpenGl/QGLWidget>

我已经验证了该文件确实在/usr/include/qt4/QtOpenGL 中。我在网上看过,但我找到的所有解决方案都涉及将QT += opengl添加到项目文件中(但我使用的是 CMake)或没有安装开发工具或 qt-sdk 包(我确实有)。

我错过了什么?

你的代码'QtOpenGl/QGLWidget'中没有错别字吗?QtOpenGl应该改为QtOpenGL。如果你在Linux上这样做,情况很重要。