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 wiki
и cmake and opengl
должны дать вам достаточно информации, чтобы все заработало.