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

标签 linux opengl cmake

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

我得到 OpenGL 函数的 undefined reference 错误。

我试过了:

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

但这不起作用。

有什么建议吗?

最佳答案

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_FOUNDfind_package(OpenGL) 之后或使用 REQUIRED ,这将停止 cmake如果 OpenGL没有找到。

更多信息和更好的例子:

尤其是 CMake wikicmake and opengl链接应该足以让您正常工作。

关于linux - 如何在 linux 中使用 CMake 和 Kdevelop 编译 GLUT + OpenGL 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9460242/

相关文章:

c - 以 C 开头的 Pthread 函数

opengl - 在什么条件下,多遍方法变得严格必要?

arrays - 查找正在运行的进程的 PID 并将其存储为数组

c++ - SGE 中 SGI 机器上的 CPU 负载失控

c++ - glDeleteShader - 顺序无关紧要吗?

c++ - 从平面计算网格顶点

cmake - 未知的 CMake Qt5 命令

c++ - 如何将 OpenMP 和 MPI 导入大型 CLion CMake 项目?

python - 从 Visual Studio 文件构建动态库

linux - 连接到主机 localhost 端口 22 : Connection refused