如标题所示,我似乎无法使用OpenGL和Glut构建项目。
我收到OpenGL函数的未定义参考错误。
我试着做:
project(testas) find_package(OpenGL) find_package(GLUT) add_executable(testas main.cpp)
但这是行不通的。
有什么建议么?
find_package(OpenGL) 会为您找到软件包,但不会将软件包链接到目标。
find_package(OpenGL)
要链接到库,可以使用target_link_libraries(<target> <item>)。此外,您还需要设置include directory,以便链接器知道在哪里寻找东西。这是通过完成的include_directories。
target_link_libraries(<target> <item>)
include directory
include_directories
一个CMakeLists.txt执行此操作的示例如下所示:
CMakeLists.txt
cmake_minimum_required(VERSION 2.8) project(testas) add_executable(testas main.cpp) find_package(OpenGL REQUIRED) find_package(GLUT REQUIRED) include_directories( ${OPENGL_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS} ) target_link_libraries(testas ${OPENGL_LIBRARIES} ${GLUT_LIBRARY} )
如果OpenGL对于您的项目是必要的,则可以考虑在OpenGL_FOUND之后进行测试,find_package(OpenGL)或使用REQUIRED,cmake如果OpenGL找不到则将停止测试。
OpenGL
OpenGL_FOUND
REQUIRED
cmake
有关更多信息和更好的示例:
特别是CMake wikiand cmake and opengl链接应该给您足够的帮助。
CMake wiki
cmake and opengl