正如标题所说,我似乎无法使用 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_FOUND
在 find_package(OpenGL)
之后或使用 REQUIRED
,这将停止 cmake
如果 OpenGL
没有找到。
更多信息和更好的例子:
- CMake 文档,target_link_libraries
- CMake 文档,find_package
- CMake 维基:how to find libraries
- 带有解决方案的论坛帖子:cmake and opengl
- swarthmore.edu 的 CMake 教程
尤其是 CMake wiki
和 cmake and opengl
链接应该足以让您正常工作。
关于linux - 如何在 linux 中使用 CMake 和 Kdevelop 编译 GLUT + OpenGL 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9460242/