如何让QtCreator在使用CMake构建时识别OpenGL函数的自动完成?
问题描述:
我开始为我的应用程序使用Qt + OpenGL。我也注意到可以使用CMake构建应用程序explained here如何让QtCreator在使用CMake构建时识别OpenGL函数的自动完成?
但是,我无法让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)
答
我找到了答案在Qt's CMake manual
为了find_package成功,Qt的5必须低于 中发现的CMAKE_PREFIX_PATH,或必须在CMake 缓存中将Qt5_DIR设置为Qt5WidgetsConfig.cmake文件的位置。使用C进行最简单的 方法是将CMAKE_PREFIX_PATH环境变量设置 的Qt到5的安装前缀
因此,通过添加以下行的CMakeLists.txt
SET(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH} /Applications/Qt/5.3/clang_64")
做出Qt来识别和自动完成OpenGL功能。
+0
即使这回答我的问题,我想问问,如果有人知道为什么设置这个变量'CMAKE_PREFIX_PATH'工作,而使用'INCLUDE_DIRECTORIES'不? – BRabbit27 2014-10-28 07:41:18
从我的经验来看,就像这样:'LIST(APPEND INCLUDES OPENGL_INCLUDE_DIRS)'尽管我不确定 – 2014-10-27 19:20:29
忘记提及我在OS X下测试,但它很可能也必须在Ubuntu上工作。 – BRabbit27 2014-10-27 20:25:44
这很奇怪,因为我刚刚为CUDA尝试了'INCLUDE_DIRECTORIES($ {CUDA_INCLUDE_DIRS})',并且Qt能够识别所有内容并执行自动完成,所以我错过了OpenGL库。 – BRabbit27 2014-10-27 20:28:39