CMake не может найти freeglut-3.0.0
Freeglut-3.0.0 собирается с помощью cmake (файлы сборки MinGW) и mingw, а затем успешно устанавливается с mingw32-make install
в C:/Program Files (x86)/freeglut
,
мой CMakeLists.txt
является:
cmake_minimum_required(VERSION 3.7)
project(math_tests)
set(TESTS_SOURCES tests.cpp gl_core_3_3.c)
set(CMAKE_CXX_STANDARD 11)
# GLUT
find_package(GLUT REQUIRED)
include_directories(${GLUT_INCLUDE_DIR})
if(NOT GLUT_FOUND)
message(ERROR "GLUT not found!")
endif(NOT GLUT_FOUND)
# OpenGL
find_package(OpenGL REQUIRED)
include_directories(${OpenGL_INCLUDE_DIRS})
link_directories(${OpenGL_LIBRARY_DIRS})
add_definitions(${OpenGL_DEFINITIONS})
if(NOT OPENGL_FOUND)
message(ERROR "OPENGL not found!")
endif(NOT OPENGL_FOUND)
add_executable(tests ${TESTS_SOURCES})
target_link_libraries(tests math ${GLUT_LIBRARIES} ${OPENGL_LIBRARIES})
Теперь CMake печатает ошибку: Could NOT find GLUT (missing: GLUT_glut_LIBRARY).
Я не могу понять, что я делаю неправильно.
1 ответ
Ваше заявление файла CMakeLists.txt
find_package(GLUT REQUIRED)
собирается выполнить этот код из FindGLUT.cmake
find_library( GLUT_glut_LIBRARY NAMES glut glut32 freeglut
PATHS
${OPENGL_LIBRARY_DIR}
${GLUT_ROOT_PATH}/Release
)
а также find_library
в вашем сценарии не может найти ни одного из glut glut32 freeglut
библиотеки, потому что он не знает, где они находятся (которые для вас находятся под C:/Program Files (x86)/freeglut
).
В вашем случае вы могли бы установить ${OPENGL_LIBRARY_DIR}
в правильный каталог, в котором находится файл freeglut.dll, например:
set(OPENGL_LIBRARY_DIR "C:/Program Files (x86)/freeglut/lib")
учитывая, что файл находится под C:/Program Files (x86)/freeglut/lib
каталог.