我有一个简单的弹跳球程序,几年前我在Windows上的QtCreator中编写,现在我尝试使用CMakeLists而不是Qt项目文件在Linux(Ubuntu 14.04)上重建它。我的CMakeLists.txt文件(松散地基于this question中的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软件包安装(我有)。
我错过了什么?
答案 0 :(得分:4)
您的代码中是否存在拼写错误&#39; QtOpenGl / QGLWidget&#39;? QtOpenGl应该更改为QtOpenGL。如果你在Linux上这样做,那么案件很重要。