我有一個簡單的彈跳球程序,我在幾年前在Windows上的QtCreator中編寫,現在我試圖在Linux(Ubuntu 14.04)上使用CMakeLists而不是Qt項目文件重建它。我的CMakeLists.txt文件(基於鬆散掉在this question CMake的文件低於Cmake無法找到QGLWidget
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軟件包(我確實有這些軟件包)。
我錯過了什麼?
你不需要在'#include'指令中寫'QtOpenGL /'。 include目錄'$ {QT_QTOPENGL_INCLUDE_DIR}'應該已經爲你做了。相反,使用'#include'這將更適應版本變化的地方,這個文件被移動。 –
Nobody