使用cmake(MinGW makefile)构建Freeglut-3.0.0并使用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})
是:
Could NOT find GLUT (missing: GLUT_glut_LIBRARY).
现在CMake打印错误:{{1}}
我无法弄清楚我做错了什么。
答案 0 :(得分:5)
您的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
目录。