Ошибка целевой ссылки библиотеки ссылок Cmake

Привет У меня проблема с linkg Glfw и другими библиотеками, использующими cmake. Из командной строки я компилирую, как это

g++ main.cpp -lGL -lGLU -lGLEW -lglfw

Но я хотел использовать cmake для компиляции. Я пытался использовать target_linkg_libraries, но это приводит к ошибке

Ошибка CMake в CMakeLists.txt: 18 (target_link_libraries): не удается указать библиотеки ссылок для целевого "GL", который не построен этим
проект.

Я попытался сделать это, добавив определения. Я не вижу ошибки, но это не связывает библиотеки.

cmake_minimum_required (VERSION 2.6)
project (test)

find_package(OpenGL REQUIRED)
find_package(GLEW REQUIRED)

ADD_DEFINITIONS(
    -lGL
    -lGLU
    -lGLEW
    -lglfw
)

add_executable(test.out
    main.cpp
)

target_link_libraries(GL GLU GLEW glfw)

Ответ 1

Синтаксис для target_link_libraries:

target_link_libraries(your_executable_name libraries_list)

И вам не нужно добавлять операторы add_definition (target_link_libraries добавляет эти параметры)

Есть также некоторые полезные переменные, предоставляемые пакетами OpenGL и GLEW.

Ваш CMakeLists.txt должен выглядеть следующим образом:

cmake_minimum_required (VERSION 2.6)
project (test)

find_package(OpenGL REQUIRED)
find_package(GLEW REQUIRED)

include_directories(${OPENGL_INCLUDE_DIR} ${GLEW_INCLUDE_DIRS})

add_executable(test
    main.cpp
)

target_link_libraries(test ${OPENGL_LIBRARIES} ${GLEW_LIBRARIES})