正如标题所说,我似乎无法使用 OpenGL 和 Glut 构建该项目。
我收到 OpenGL 函数的未定义参考错误。
我尝试这样做:
project(testas)
find_package(OpenGL)
find_package(GLUT)
add_executable(testas main.cpp)
但这是行不通的。
有什么建议么?
find_package(OpenGL) https://cmake.org/cmake/help/latest/module/FindOpenGL.html将为您找到该包,但它不会将该包链接到目标。
要链接到库,您可以使用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} )
If OpenGL
是您的项目的必需品,您可以考虑测试OpenGL_FOUND
之后find_package(OpenGL)
或使用REQUIRED
,这将停止cmake
if OpenGL
没有找到。
有关更多信息和更好的示例:
- CMake 文档,目标链接库 https://cmake.org/cmake/help/latest/command/target_link_libraries.html
- CMake 文档,查找包 https://cmake.org/cmake/help/latest/command/find_package.html
- CMake 维基:如何找到图书馆 http://www.vtk.org/Wiki/CMake%3aHow_To_Find_Libraries#Using_external_libraries
- 论坛帖子及解决方案:cmake 和 opengl http://www.qtcentre.org/threads/35407-Cmake-and-opengl-linking-error
- CMake 教程斯沃斯莫尔教育网 http://www.cs.swarthmore.edu/%7Eadanner/tips/cmake.php
特别是,CMake wiki
and cmake and opengl
链接应该足以让您正常工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)