我开始为我的应用程序使用Qt + OpenGL。我还注意到可以使用CMake将应用程序构建为explained here
但是,我无法让Qt识别自动完成的OpenGL函数。应用程序构建正确,运行没有问题。
我必须添加到CMake文件或Qt中的设置才能获得自动完成功能吗?
如果需要,这是我的CMakeLists.txt
CMAKE_MINIMUM_REQUIRED( VERSION 2.8 )
PROJECT( QtOpenGLTemplate )
FIND_PACKAGE( Qt5Widgets REQUIRED )
IF( Qt5Widgets_FOUND )
MESSAGE( STATUS "Qt5 Widgets module FOUND!" )
ELSE()
MESSAGE( WARNING "Qt5 Widgets module NOT FOUND!" )
ENDIF()
FIND_PACKAGE( Qt5OpenGL REQUIRED )
IF( Qt5OpenGL_FOUND )
MESSAGE( STATUS "Qt5 OpenGL module FOUND!" )
ELSE()
MESSAGE( WARNING "Qt5 OpenGL module NOT FOUND!" )
ENDIF()
FIND_PACKAGE( OpenGL REQUIRED )
IF( OPENGL_FOUND )
MESSAGE( STATUS "OpenGL FOUND!" )
ELSE()
MESSAGE( WARNING "OpenGL NOT FOUND!" )
ENDIF()
SET( SOURCES main.cpp GLViewer.cpp )
ADD_EXECUTABLE( QtOpenGLTemplate ${SOURCES} )
TARGET_LINK_LIBRARIES( QtOpenGLTemplate ${OPENGL_LIBRARIES} Qt5::Widgets Qt5::OpenGL )
答案 0 :(得分:1)
为了使find_package成功,必须在下面找到Qt 5 必须在CMake中设置CMAKE_PREFIX_PATH或Qt5_DIR 缓存到Qt5WidgetsConfig.cmake文件的位置。最简单的 使用CMake的方法是设置CMAKE_PREFIX_PATH环境变量 到Qt 5的安装前缀。
因此,将以下行添加到CMakeLists.txt
SET(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH} /Applications/Qt/5.3/clang_64")
让Qt识别并自动完成OpenGL功能。