使用CMake构建时,如何使QtCreator识别OpenGL函数的自动完成?
我开始为我的应用程序使用Qt+OpenGL。我还注意到,可以使用CMake将应用程序构建为 然而,我无法让Qt识别OpenGL函数的自动完成。应用程序构建正确,运行正常 是否有我必须添加到CMake文件或Qt中的设置才能获得自动完成 如果需要,这是我的CMakeLists.txt使用CMake构建时,如何使QtCreator识别OpenGL函数的自动完成?,qt,opengl,cmake,Qt,Opengl,Cmake,我开始为我的应用程序使用Qt+OpenGL。我还注意到,可以使用CMake将应用程序构建为 然而,我无法让Qt识别OpenGL函数的自动完成。应用程序构建正确,运行正常 是否有我必须添加到CMake文件或Qt中的设置才能获得自动完成 如果需要,这是我的CMakeLists.txt CMAKE_MINIMUM_REQUIRED( VERSION 2.8 ) PROJECT( QtOpenGLTemplate ) FIND_PACKAGE( Qt5Widgets REQUIRED ) IF( Q
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 )
我从中找到了答案
为了使find_软件包成功,必须在下面找到Qt 5
必须在CMAKE中设置CMAKE_前缀_路径或Qt5_目录
缓存到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函数。根据我的经验,它类似于:
LIST(APPEND包含OpenGL\u INCLUDE\u DIRS)
虽然我不确定是否忘记提到我正在OS X下测试,但它可能也必须在Ubuntu上工作。这很奇怪,因为我刚刚尝试了包含目录(${CUDA_INCLUDE_DIRS})
对于CUDA和Qt来说,识别一切并执行自动补全,因此我遗漏了OpenGL库的一些内容。即使这回答了我的问题,我想问一下,是否有人知道为什么设置这个变量CMAKE_PREFIX_路径
有效,而使用INCLUDE_目录
无效?