一尘不染

如何在Linux中使用CMake和Kdevelop编译GLUT + OpenGL项目?

linux

如标题所示,我似乎无法使用OpenGL和Glut构建项目。

我收到OpenGL函数的未定义参考错误。

我试着做:

project(testas)
find_package(OpenGL)
find_package(GLUT)
add_executable(testas main.cpp)

但这是行不通的。

有什么建议么?


阅读 367

收藏
2020-06-03

共1个答案

一尘不染

find_package(OpenGL) 会为您找到软件包,但不会将软件包链接到目标。

要链接到库,可以使用target_link_libraries(<target> <item>)。此外,您还需要设置include directory,以便链接器知道在哪里寻找东西。这是通过完成的include_directories

一个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)或使用REQUIREDcmake如果OpenGL找不到则将停止测试。

有关更多信息和更好的示例:

特别是CMake wikiand cmake and opengl链接应该给您足够的帮助。

2020-06-03