CMake 找不到 freeglut-3.0.0
CMake can't find freeglut-3.0.0
Freeglut-3.0.0 是使用 cmake(MinGW makefiles)和 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).
我不知道我做错了什么。
您的 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
目录下。
Freeglut-3.0.0 是使用 cmake(MinGW makefiles)和 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).
我不知道我做错了什么。
您的 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
目录下。